Commit 2b18d95
tools/profile: Add additional information to backtrace (iovisor#5109)
Add additional information and change the format of the backtrace:
- Include the symbol base offset and DSO name.
- Symbol and DSO information is included if it's available in the target binary.
- Format:
[SYMBOL+OFFSET] (MODULE)
- Add a -A(or --addr) option for a detailed format that includes the address:
ADDR [SYMBOL+OFFSET] (MODULE)
before:
# ./profile.py
[unknown]
_PyDict_GetItem_KnownHash
[unknown]
[unknown]
[unknown]
[unknown]
_PyObject_MakeTpCall
_PyObject_CallFunction_SizeT
[unknown]
_PyEval_EvalFrameDefault
PyEval_EvalCode
[unknown]
[unknown]
_PyRun_SimpleFileObject
_PyRun_AnyFileObject
Py_RunMain
Py_BytesMain
__libc_start_call_main
__libc_start_main_impl
_start
- python3 (384002)
1
[unknown]
[unknown]
[unknown]
[unknown]
[unknown]
[unknown]
- gnome-shell (2302)
1
After:
# ./profile.py
runtime.typePointers.next+0x4b [grafana]
runtime.gcDrain+0x1f4 [grafana]
runtime.gcBgMarkWorker.func2+0xa5 [grafana]
runtime.systemstack.abi0+0x4a [grafana]
runtime.gcBgMarkWorker+0x1f2 [grafana]
runtime.goexit.abi0+0x1 [grafana]
- grafana (25858)
1
runtime.nanotime1.abi0+0x89 [containerd]
runtime.sysmon+0x24b [containerd]
runtime.mstart1+0x95 [containerd]
runtime.mstart0+0x76 [containerd]
runtime.mstart.abi0+0x5 [containerd]
[unknown]
- containerd (454924)
1
__get_user_8+0x10 [kernel]
__get_user_8+0x10 [kernel]
rseq_ip_fixup+0x69 [kernel]
__rseq_handle_notify_resume+0x2b [kernel]
syscall_exit_to_user_mode+0x1f9 [kernel]
do_syscall_64+0x8c [kernel]
entry_SYSCALL_64_after_hwframe+0x78 [kernel]
runtime.futex.abi0+0x23 [dockerd]
runtime.notesleep+0x87 [dockerd]
runtime.stopm+0x8c [dockerd]
runtime.findRunnable+0xd5f [dockerd]
runtime.schedule+0xb1 [dockerd]
runtime.park_m+0x1ec [dockerd]
runtime.mcall+0x50 [dockerd]
runtime.gopark+0xce [dockerd]
runtime.(*scavengerState).park+0x49 [dockerd]
runtime.bgscavenge+0x59 [dockerd]
runtime.gcenable.gowrap2+0x25 [dockerd]
runtime.goexit.abi0+0x1 [dockerd]
- dockerd (144352)
1
# ./profile.py -A
0xffffffff945afbb8 __get_user_nocheck_4+0x8 [kernel]
0xffffffff945afbb8 __get_user_nocheck_4+0x8 [kernel]
0xffffffff936267be futex_wait_setup+0x7e [kernel]
0xffffffff9362697b __futex_wait+0x13b [kernel]
0xffffffff93626a94 futex_wait+0x74 [kernel]
0xffffffff93622765 do_futex+0x105 [kernel]
0xffffffff9362302a __x64_sys_futex+0x12a [kernel]
0xffffffff934071a7 x64_sys_call+0x1ce7 [kernel]
0xffffffff9462601f do_syscall_64+0x7f [kernel]
0xffffffff94800130 entry_SYSCALL_64_after_hwframe+0x78 [kernel]
0x00007df292898d61 __GI___futex_abstimed_wait_cancelable64+0xe1 [libc.so.6]
0x00007df29289bc7e pthread_cond_timedwait@@GLIBC_2.3.2+0x23e [libc.so.6]
0x0000645da1a160fa os_event::timed_wait(timespec const*)+0x3a [mysqld]
0x0000645da1a2f551 os_event::wait_time_low(std::chrono::duration<long, std::ratio<1l, 1000000l> >, long)+0x81 [mysqld]
0x0000645da19e44a9 log_files_governor(log_t*)+0x159 [mysqld]
0x0000645da19efb19 [unknown] [mysqld]
0x00007df292cecdb4 [unknown] [libstdc++.so.6.0.33]
0x00007df29289ca94 start_thread+0x384 [libc.so.6]
0x00007df292929c3c __GI___clone3+0x2c [libc.so.6]
- ib_log_files_g (28830)
11 parent f1c556d commit 2b18d95
1 file changed
+13
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
133 | 135 | | |
134 | 136 | | |
135 | 137 | | |
| |||
393 | 395 | | |
394 | 396 | | |
395 | 397 | | |
396 | | - | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
397 | 404 | | |
398 | 405 | | |
399 | 406 | | |
400 | 407 | | |
401 | 408 | | |
402 | 409 | | |
403 | 410 | | |
404 | | - | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
405 | 416 | | |
406 | 417 | | |
407 | 418 | | |
| |||
0 commit comments