2
我想在gdb中創建回溯(在腳本中)。命令bt 2
只打印2個最裏面的幀,而bt -2
只打印2個最外面的幀。在回溯中跳過最裏面的幀
我想要做的是跳過 2個最裏面的幀,並顯示所有的外框。我試過
up 2
bt
(以及類似up-silently
,frame
,select-frame
),但並不影響bt
輸出。要清楚,我想擺脫此輸出中的第一行:
#0 0x0000003167e0f33e in waitpid() from /lib64/libpthread.so.0
#1 0x00007f2779835de8 in print_trace()() at /path/to/MyAnalysis.cxx:385
#2 0x00007f2779836ec9 in MyAnalysis::getHistHolder(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)() at /path/to/MyAnalysis.cxx:409
#3 0x00007f27798374aa in MyAnalysis::execute()() at /path/to/MyAnalysis.cxx:599
#4 0x00007f2783a9670f in EL::Worker::algsExecute()() from /blah/lib/libEventLoop.so
...
任何方式來做到這一點?
調用return
兩次似乎有效,但之後應用程序仍然處於無效狀態,因此我無法使用它。
downvoters是否願意解釋這個問題出了什麼問題? – jdm
會寫你自己的過濾器是一個選項? https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Frame-Filter.html –
@MarcusMüller感謝您的鏈接。這將是一個選擇,但它可能是矯枉過正的這樣一個化妝品問題。 (另外,當我調用gdb時,我正在禁用python腳本自動加載,所以它需要一些工作。)我真的很驚訝似乎沒有簡單的方法來設置當前幀。 – jdm