gdb emacs 博客分类: linuxgdb emacs
程序员文章站
2024-03-06 15:21:08
...
参考
http://www.cnblogs.com/qlwy/archive/2012/06/04/2535297.html
http://blog.csdn.net/liigo/article/details/582231
emacs gdb-sample.c
编译
m-x compile
Compile command: gcc -o gdb-sample -g gdb-sample.c
gdb模式
m-x gdb
Run gdb (like this): gdb -i=mi gdb-sample
gdb的多窗口
M-x gdb-many-windows
b main
如果乱了使用
M-x gdb-restore-windows
每次都查看的变量值
display n
命令 意义 用法
list 从第一行开始列出源码(默认10行) l
l 3 (开始行)
break
设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。
b <行号>
b <函数名称>
b *<函数名称>
b *<代码地址>
run 开始调试程序 r
continue 继续执行被调试程序,直至下一个断点或程序结束。 c
clear 删除特定行的断点 clear <行号>
delete 删除断点,编号从1开始 d <编号>
next line 执行一行源程序代码,此行代码中的函数调用也一并执行。 n
step line 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数 s
until 结束当前循环 until
print 可以检查各个变量的值,数组的值,以及函数等 print p (p为变量名)
print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值)
显示数组: p <数组名>
显示数组元素:p <*数组指针>
显示数组int a[N]的特定值:
① p *a@10
② p (int [10])*10
whatis 可以显示某个变量的类型 whatis p
info 用于显示各类信息 如:info b 显示断点信息
info r 寄存器信息
info local 显示当前函数中的局部变量信息
info prog 显示被调试程序的执行状态
quit 退出gdb调试 q
http://www.cnblogs.com/qlwy/archive/2012/06/04/2535297.html
http://blog.csdn.net/liigo/article/details/582231
[root@node11 ~]# cat gdb-sample.c #include <stdio.h> int nGlobalVar = 0; int tempFunction(int a, int b) { printf("tempFunction is called, a = %d, b = %d \n", a, b); return (a + b); } int main() { int n; n = 1; n++; n--; nGlobalVar += 100; nGlobalVar -= 12; printf("n = %d, nGlobalVar = %d \n", n, nGlobalVar); n = tempFunction(1, 2); printf("n = %d", n); return 0; } [root@node11 ~]#
emacs gdb-sample.c
编译
m-x compile
Compile command: gcc -o gdb-sample -g gdb-sample.c
gdb模式
m-x gdb
Run gdb (like this): gdb -i=mi gdb-sample
gdb的多窗口
M-x gdb-many-windows
b main
如果乱了使用
M-x gdb-restore-windows
每次都查看的变量值
display n
命令 意义 用法
list 从第一行开始列出源码(默认10行) l
l 3 (开始行)
break
设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。
b <行号>
b <函数名称>
b *<函数名称>
b *<代码地址>
run 开始调试程序 r
continue 继续执行被调试程序,直至下一个断点或程序结束。 c
clear 删除特定行的断点 clear <行号>
delete 删除断点,编号从1开始 d <编号>
next line 执行一行源程序代码,此行代码中的函数调用也一并执行。 n
step line 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数 s
until 结束当前循环 until
print 可以检查各个变量的值,数组的值,以及函数等 print p (p为变量名)
print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值)
显示数组: p <数组名>
显示数组元素:p <*数组指针>
显示数组int a[N]的特定值:
① p *a@10
② p (int [10])*10
whatis 可以显示某个变量的类型 whatis p
info 用于显示各类信息 如:info b 显示断点信息
info r 寄存器信息
info local 显示当前函数中的局部变量信息
info prog 显示被调试程序的执行状态
quit 退出gdb调试 q