gdb除錯ros node崩潰位址

2021-08-17 09:51:26 字數 2075 閱讀 2095

catkin_make -dcmake_build_type=debug
rosrun --prefix 'gdb -ex run --args'  package   node

[thread debugging using libthread_db enabled]

using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

program received signal sigsegv, segmentation fault.

0x0000000000460d30 in boost::detail::atomic_increment (pw=0x555ed0 <__libc_csu_init+8>) at /usr/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp:43

43 __sync_fetch_and_add( pw, 1 );

此時看到 'segmentation fault'崩潰了,使用'bt'命令列出崩潰call stack

#7 0x000000000045ca78 in main (argc=1, argv=0x7ffffff1c0) at /home/nvidia/catkin_ws/src/baidu_had/src/db_console.cc:247這裡已經可以都看到frame 6呼叫shared_ptr引起崩潰,還有**檔名和行數。接下來可以 frame 6 和 frame info來看詳細的暫存器資訊.

其它的除錯命令如: info locals , info args 等可以列印frame的引數等

用gdb除錯找出nginx崩潰的原因

按照流程一路排查下去,發現nginx訪問日誌裡面有大量的http 504 err code tail f var log messages 同時出現大量的類似錯誤資訊 nginx 1234 segfault at 0000000000000008 rip 000000000043edf8 rsp 0...

Redis崩潰除錯

redis的 質量一直被業內人士稱讚,在極高的業務壓力下也能有很好的穩定性。但是極端情況下,redis也是有可能會crash的。有時候因為種種原因,系統配置問題,磁碟空間寫滿了,程序許可權不夠等等,我們可能不會運氣那麼好,有乙個core檔案可以拿去除錯。這個時候,redis提供了幾種異常崩潰情況下的...

Xcode崩潰除錯

xcode還是比較好用的,搜尋方便,只有充分的摸索各個視窗能找到各種資訊。可以在下面console臺輸入命令列檢視 thread info 可以檢視當前斷點執行緒的資訊,如果再加上乙個數字引數表示檢視某個執行緒號的資訊 thread backtrace 可以檢視呼叫棧 exec bad access...