| Index: third_party/tcmalloc/chromium/src/google/heap-profiler.h
|
| ===================================================================
|
| --- third_party/tcmalloc/chromium/src/google/heap-profiler.h (revision 126022)
|
| +++ third_party/tcmalloc/chromium/src/google/heap-profiler.h (working copy)
|
| @@ -26,9 +26,79 @@
|
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| + *
|
| + * ---
|
| + * Author: Sanjay Ghemawat
|
| + *
|
| + * Module for heap-profiling.
|
| + *
|
| + * For full(er) information, see doc/heapprofile.html
|
| + *
|
| + * This module can be linked into your program with
|
| + * no slowdown caused by this unless you activate the profiler
|
| + * using one of the following methods:
|
| + *
|
| + * 1. Before starting the program, set the environment variable
|
| + * "HEAPPROFILE" to be the name of the file to which the profile
|
| + * data should be written.
|
| + *
|
| + * 2. Programmatically, start and stop the profiler using the
|
| + * routines "HeapProfilerStart(filename)" and "HeapProfilerStop()".
|
| + *
|
| */
|
|
|
| -/* The code has moved to gperftools/. Use that include-directory for
|
| - * new code.
|
| +#ifndef BASE_HEAP_PROFILER_H_
|
| +#define BASE_HEAP_PROFILER_H_
|
| +
|
| +#include <stddef.h>
|
| +
|
| +/* Annoying stuff for windows; makes sure clients can import these functions */
|
| +#ifndef PERFTOOLS_DLL_DECL
|
| +# ifdef _WIN32
|
| +# define PERFTOOLS_DLL_DECL __declspec(dllimport)
|
| +# else
|
| +# define PERFTOOLS_DLL_DECL
|
| +# endif
|
| +#endif
|
| +
|
| +/* All this code should be usable from within C apps. */
|
| +#ifdef __cplusplus
|
| +extern "C" {
|
| +#endif
|
| +
|
| +/* Start profiling and arrange to write profile data to file names
|
| + * of the form: "prefix.0000", "prefix.0001", ...
|
| */
|
| -#include <gperftools/heap-profiler.h>
|
| +PERFTOOLS_DLL_DECL void HeapProfilerStart(const char* prefix);
|
| +
|
| +/* Returns non-zero if we are currently profiling the heap. (Returns
|
| + * an int rather than a bool so it's usable from C.) This is true
|
| + * between calls to HeapProfilerStart() and HeapProfilerStop(), and
|
| + * also if the program has been run with HEAPPROFILER, or some other
|
| + * way to turn on whole-program profiling.
|
| + */
|
| +int IsHeapProfilerRunning();
|
| +
|
| +/* Stop heap profiling. Can be restarted again with HeapProfilerStart(),
|
| + * but the currently accumulated profiling information will be cleared.
|
| + */
|
| +PERFTOOLS_DLL_DECL void HeapProfilerStop();
|
| +
|
| +/* Dump a profile now - can be used for dumping at a hopefully
|
| + * quiescent state in your program, in order to more easily track down
|
| + * memory leaks. Will include the reason in the logged message
|
| + */
|
| +PERFTOOLS_DLL_DECL void HeapProfilerDump(const char *reason);
|
| +
|
| +/* Generate current heap profiling information.
|
| + * Returns an empty string when heap profiling is not active.
|
| + * The returned pointer is a '\0'-terminated string allocated using malloc()
|
| + * and should be free()-ed as soon as the caller does not need it anymore.
|
| + */
|
| +PERFTOOLS_DLL_DECL char* GetHeapProfile();
|
| +
|
| +#ifdef __cplusplus
|
| +} // extern "C"
|
| +#endif
|
| +
|
| +#endif /* BASE_HEAP_PROFILER_H_ */
|
|
|