實驗平台: linux + gcc + gdb
除錯正在執行的程序。
多次 fork(),exec()的程式,從頭開始跟蹤非常麻煩。可以使程式停在我們感興趣的地方,然後用 gdb 去 attach。
printf(
"___i am waiting for being attached by gdb. my pid :_%d_________%s_%d__\n
", getpid(), __file__ , __line__ );
pause();
reading symbols from
/lib
/libnss_files.so.
2loaded symbols
for/
lib/
libnss_files.so.
20x00a047a2
in_dl_sysinfo_int80 () from
/lib/ld
-linux.so.
2(gdb) b main.cpp:
1220
breakpoint
1at
0x8054e85
: file main.cpp, line
1220
.(gdb) signal 0
continuing with signal 0.
[switching to thread
-1207969568
(lwp
24761
)]breakpoint 1=
6) at main.cpp:
1220
1220
printf(
"_____被訊號喚醒了\n");
(gdb)
GDB使用技巧
1 啟動 1 程式的執行引數。set args 指定執行時引數。如 setargs1020304050 show args 檢視設定好的執行引數。2 執行環境 path 設定程式的執行路徑。show paths 檢視程式的執行路徑。set environment varname value 設定環境...
gdb使用技巧
1.斷點的設定 普通斷點 b n 注 n為行號 或者是break n。此方法過於簡單,不再舉例說明。條件斷點 b n if 邏輯表示式 注 以上兩種斷點型別中tbreak設定方法與break相同,只不過tbreak只在斷點停一次,過後會自動將斷點刪除,break需要手動控制斷點的刪除和使能。demo...
幾則gdb使用技巧
分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!幾則gdb 使用技巧 gdb的功能強大,與帶gui 的偵錯程式相比有過之而無不及,使用也就相對複雜一些。一方面是它的親和力稍差,畢竟是給程式設計師用的,不用做得傻瓜化。另外一方面它的命令太...