src: add --track-heap-objects
- This makes v8 add .trace_function_info to the serialized form of snapshots from v8::HeapSnapshot::Serialize - .trace_funciton_info combined with .trace_node in snapshots tells the JS location that allocated a specific object PR-URL: https://github.com/nodejs/io.js/pull/2135 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
23efb05cc3
commit
cf14a2427c
@ -60,6 +60,8 @@ and servers.
|
||||
|
||||
--throw-deprecation throw errors on deprecations
|
||||
|
||||
--track-heap-objects track heap object allocations for heap snapshots
|
||||
|
||||
--v8-options print v8 command line options
|
||||
|
||||
|
||||
|
@ -117,6 +117,7 @@ static bool trace_deprecation = false;
|
||||
static bool throw_deprecation = false;
|
||||
static bool abort_on_uncaught_exception = false;
|
||||
static bool trace_sync_io = false;
|
||||
static bool track_heap_objects = false;
|
||||
static const char* eval_string = nullptr;
|
||||
static unsigned int preload_module_count = 0;
|
||||
static const char** preload_modules = nullptr;
|
||||
@ -3065,6 +3066,8 @@ static void PrintHelp() {
|
||||
" --trace-deprecation show stack traces on deprecations\n"
|
||||
" --trace-sync-io show stack trace when use of sync IO\n"
|
||||
" is detected after the first tick\n"
|
||||
" --track-heap-objects track heap object allocations for heap "
|
||||
"snapshots\n"
|
||||
" --v8-options print v8 command line options\n"
|
||||
#if defined(NODE_HAVE_I18N_SUPPORT)
|
||||
" --icu-data-dir=dir set ICU data load path to dir\n"
|
||||
@ -3187,6 +3190,8 @@ static void ParseArgs(int* argc,
|
||||
trace_deprecation = true;
|
||||
} else if (strcmp(arg, "--trace-sync-io") == 0) {
|
||||
trace_sync_io = true;
|
||||
} else if (strcmp(arg, "--track-heap-objects") == 0) {
|
||||
track_heap_objects = true;
|
||||
} else if (strcmp(arg, "--throw-deprecation") == 0) {
|
||||
throw_deprecation = true;
|
||||
} else if (strcmp(arg, "--abort-on-uncaught-exception") == 0 ||
|
||||
@ -3876,6 +3881,10 @@ Environment* CreateEnvironment(Isolate* isolate,
|
||||
static void StartNodeInstance(void* arg) {
|
||||
NodeInstanceData* instance_data = static_cast<NodeInstanceData*>(arg);
|
||||
Isolate* isolate = Isolate::New();
|
||||
if (track_heap_objects) {
|
||||
isolate->GetHeapProfiler()->StartTrackingHeapObjects(true);
|
||||
}
|
||||
|
||||
// Fetch a reference to the main isolate, so we have a reference to it
|
||||
// even when we need it to access it from another (debugger) thread.
|
||||
if (instance_data->is_main())
|
||||
|
Loading…
x
Reference in New Issue
Block a user