gdbを使用してプログラムをデバッグします

gdbを使用してプログラムをデバッグします

バックグラウンド

まず、次のことを理解する必要
があります。1。プログラムをリリースするには、デバッグモードとリリースモードの
2つの方法があります。2。Linuxgcc / g ++からのバイナリプログラム。デフォルトはリリースモードです
。3。gdbを使用するには、デバッグ、ソースコードに含まれている必要がありますバイナリプログラムを生成するときに-gオプションを追加します

gdbとは

gdbは、UNIX / LINUXオペレーティングシステムの下でgnuオープンソース組織によってリリースされたコマンドラインベースの強力なプログラムデバッグツールです。

マニュアル

1. gdb binFileと入力して、デバッグに入ります
。2。デバッグコマンドの説明

list 行号:显示binFile源代码,接着上次的位置往下列,每次列10行
list 函数名:列出某个函数的源代码
r或run:运行程序
n或next:单条执行
s或step:进入函数调用
break(b)行号:在某一行开头设置断点
info break:查看断断点信息
finsh:执行到当前函数返回,然后停下来等待命令
print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量的值
set var:修改变量的值
continue(c):从当前位置开始连续而非单步执行程序
run(r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
info(或i) breakopints:参看当前设置了那些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(bt):查看各级函数调用及参数
info(i) local:查看当前栈局部变量的值
quit:退出gdb
CTRL + d:退出gdb

注:gdbでデバッグされたプログラムをコンパイルするときは、-gを使用する必要があります。そうしないと、シンボルテーブルがロードされないという問題が発生します。「file」コマンドを使用してください。が表示されます。

おすすめ

転載: blog.csdn.net/qq_43825377/article/details/112689133