gdb的attach调试.

本文介绍如何使用GDB调试器附着到一个正在运行的进程上进行调试。通过示例展示了如何启动程序并随后使用GDB attach命令来调试该进程。此外还提到了使用core文件来确定程序崩溃位置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资料出处:http://cache.baidu.com/c?m=9d78d513d99617ff4fede52d4b5084374340c72362d88a5339968449e0794611193bb6ac27551300d2d27c1050f21641afb873713c002bb48698d61788a6d36e7cce7c656d1f874211d21ea9ce4425c3229b51e9ab1ae5bdf73196a9d8d6c2&p=99759a4ed4d85ff001be9b7a7f0d&user=baidu&fm=sc&query=gdb+attach&qid=b9c518d13a95371f&p1=13
资料出处:gdb5 -- 调试正在运行的进程(zz) - 我爱美女的日志 - 网易博客
$ ./beer-process &
   [1] 17399
   p@satan$ 100000 bottles of beer on the wall.
   99999 bottles of beer on the wall.
   99998 bottles of beer on the wall.
   99997 bottles of beer on the wall.
   
   $ gdb beer-process 17399
   Attaching to program: code/running_process/beer-process, process 17399
   0x410c64fb in nanosleep () from /lib/tls/libc.so.6
   (gdb)
   
   
   attach进程号,thread apply all where 显示所有线程当前运行位置

   如果要检测挂掉的位置要使用core文件

直接gdb
再attach 进程号就可以了

gdb时不带任何参数

gdb 不加程序名?

不加, 进程号就能获取所有信息

### 使用 `gdb.attach` 设置断点的方法 当利用 pwntools 中的 `gdb.attach()` 函数来附加 GDB 进程并设置断点时,可以通过多种方式实现这一目标。 一种常见的方式是在调用 `gdb.attach()` 时传入一个包含所需调试命令字符串或列表作为第二个参数。这些命令可以包括设置断点在内的各种操作。例如,在启动进程后立即在其主函数入口处设置断点: ```python from pwn import * io = process('./vuln') gdb.attach(io, gdbscript=''' b *main continue ''') ``` 上述代码片段展示了如何向 `gdb.attach()` 提供一个多行字符串形式的脚本,其中包含了两个指令:一是为 `main` 函数创建一个断点;二是让程序继续执行直到遇到该断点位置[^1]。 如果希望在特定地址上放置断点,则可以直接指定内存地址而非符号名。假设已知某漏洞存在于偏移量 `0x80486ba` 处,那么可以在相应位置设下断点: ```python from pwn import * io = process('./target_binary') gdb.attach(io, ''' break *0x80486ba c ''') ``` 这里同样采用了多行字符串的形式定义了一组要发送给 GDB 的命令序列——先是对绝对地址设置了断点,接着发出继续运行的指示[^3]。 对于某些情况下,可能需要等待用户交互才能完成进一步的操作,这时可在 `gdb.attach()` 后面添加 `pause()` 来暂停当前 Python 脚本流程直至收到输入信号再恢复执行[^2]。 #### 注意事项 确保被调试的目标二进制文件是以调试模式编译出来的,即带有 `-g` 编译器标志,以便获得更好的符号表支持和更丰富的调试体验[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值