Node.js профилирование с Dtrace не показывает имена функций
Я пытаюсь профилировать загрузку процессора для моего проекта с помощью DTrace. Я просто следовал сценарию
Проблема в том, что он не показывает имена функций. stacks.out
файл выглядит так:
CPU ID FUNCTION:NAME
0 73700 :tick-60s
node`_ZN2v86Object3GetENS_6HandleINS_5ValueEEE+0x1
node`_ZN4node7TCPWrap12OnConnectionEP11uv_stream_si+0x14b
node`uv__server_io+0xbf
node`uv__io_poll+0x259
node`uv_run+0xda
node`_ZN4node5StartEiPPc+0x16d
node`main+0x1b
node`_start+0x83
1
node`_ZN4node6Buffer4FillERKN2v89ArgumentsE+0x22b
0x82474d1b
0x8241ee9c
0x8241e624
0x8241e30f
0x82426abd
0x82419e4e
0x82419948
0x82413fc3
0x8d20e501
0x82416f65
0x82413f98
0x8243e7d3
0x824186c0
0x8246e8cf
0x8d221899
0x8d21308a
node`_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_Pb+0x101
node`_ZN2v88internal9Execution4CallENS0_6HandleINS0_6ObjectEEES4_iPS4_Pbb+0xc9
node`_ZN2v88Function4CallENS_6HandleINS_6ObjectEEEiPNS1_INS_5ValueEEE+0x10b
node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE+0x4c
node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_6StringEEEiPNS1_INS0_5ValueEEE+0x66
node`_ZN4node10StreamWrap12OnReadCommonEP11uv_stream_si8uv_buf_t14uv_handle_type+0x14f
node`_ZN4node10StreamWrap6OnReadEP11uv_stream_si8uv_buf_t+0x2e
node`uv__read+0x281
node`uv__stream_io+0x131
node`uv__io_poll+0x259
node`uv_run+0xda
node`_ZN4node5StartEiPPc+0x16d
node`main+0x1b
node`_start+0x83
1
График пламени показывает шестнадцатеричный код (т. Е. "0x82474d1b") как вызовы функций, а не фактическое имя функции.
Я использую OmniOS (ОС на базе Illumos) vagrant box r151002 и сделал это ( https://gist.github.com/dalssoft/5595688) для сборки 32-битного node.js на OmniOS.
Какие-нибудь мысли?
1 ответ
У меня были похожие проблемы при написании моего блога о совместном использовании openindiana и node.js.
http://blog.nearform.com/blog/node-openindiana.html
Я обнаружил, что явная связь с аркой процессора - это способ ее решения.
./configure --with-dtrace --dest-cpu=x64
Не забудьте также разобрать символы с ++
c++filt < stacks.out > demangled.out