調試 之gdb thread命令 與 ltrace/strace
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
我們可以通過 1) gdb prog_name -> r 用在逐步調試自己的程序時
2) gdb -> attach process_id 正在運行中的后臺程序突然卡在了某個地方,先ps再gdb/attach
3) gdb prog_name core 程序core掉了
三種方式對一個程序進行調試;
1. thread——gdb 多線程調試命令:
info threads: 顯示當前進程中的線程;
thread thread_no: 進入線程xx,通常緊接而來的是 bt/f 命令;
2. strace/ltrace:
前者關注系統調用和程序所接收的信號;后者關注庫函數調用;
strace的應用在 我們沒有程序的源碼,或者不方便從頭開始運行程序時;可以方便查看一個應用程序進行了哪些系統調用。
而在希望知道程序都調用了動態庫中的哪些函數時,我們使用 ltrace。ltrace有個-S選項,類似于strace功能。
3.檢查內存泄漏的工具:
valgrind (in linux, free)
visual leak detector (windows , free)
boundschecker(windows, free)
profile工具:
oprofile
vtune