GDB的启动方式
Posted 一代枭雄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDB的启动方式相关的知识,希望对你有一定的参考价值。
1.直接启动
gdb
gdb test.out
gdb test.out core 异常崩溃时产生的core
2.动态连接
gdb test.out pid(进程)
动态的跟踪pid进程的行为
3.GDB应用示例一
gdb //启动
(gdb) file test.out //载入目标程序
(gdb) set args arg1 arg2 //设置命令行参数
(gdb) run //执行目标程序
还有一个start命令,start在启动程序后,会立即停止。
gdb
(gdb) file test.out
上面两条语句等价于:gdb test.out
4.GDB应用示例二:动态的跟踪、监视某个进程的执行
gdb //启动
(gdb) attach pid //链接到目标进程,链接成功后,目标进程将停止执行。
(gdb) continue //恢复执行
gdb
(gdb) attach pid
上面两条语句等价于gdb test.out pid
如何动态的链接到一个已经运行的进程上:
将test.out先运行起来
在另一个终端获得进程的pid
然后执行:gdb
(gdb) attach pid
5.GDB使用初探
gcc -g test.c func.c -o test.out
ulimit -c unlimited (让程序在崩溃时产生core文件)
gdb test.out core
定位到func.c文件的第7行出现了问题
*g_pointer = (int )"D.T.Software";
想把g_pointer所指的地址处写一个整型值,然而g_pointer指向0地址处(为什么?因为定义了int* g_pointer ,它是全局变量,没有进行初始化,默认为0)
以上是关于GDB的启动方式的主要内容,如果未能解决你的问题,请参考以下文章