gdb远程调试release版本
来源:互联网 发布:微软3600鼠标 mac 编辑:程序博客网 时间:2024/06/05 12:06
对于线上release版本,由于已经剔除了debug信息,因此无法通过加载符号表来debug程序,但是如果保留了release版本对应的debug版本,那么可以通过debug版本对release版本进行调试。
以下假设release.exe是不带调试信息的release版本可执行文件,debug.exe是带调试信息的debug版本可执行文件。
如果不是很确定是否包含调试信息,可以通过readelf -S | grep debug可执行文件查看,如:
$ readelf -S debug.exe|grep debug
[15] .debug_aranges PROGBITS 0000000000000000 038613f5
[16] .debug_info PROGBITS 0000000000000000 038cb495
[17] .debug_abbrev PROGBITS 0000000000000000 3f4ff989
[18] .debug_line PROGBITS 0000000000000000 400b9f7f
[19] .debug_str PROGBITS 0000000000000000 42804480
[20] .debug_loc PROGBITS 0000000000000000 4324d336
[21] .debug_ranges PROGBITS 0000000000000000 493d1840
远程gdb调试有两种方式:
一种是用gdbserver将进程启动:如 gdbserver IP:PORT release.exe。
令外一种是对于远程机器上已有的进程进行调试:gdbserver --attach IP:PORT PID,其中PID可以通过ps命令查看得到release版本的进程号。
起始远程机器会显示待连接提示,如(进程号假设是5725):
# gdbserver --attach 192.168.1.9:6666 5725
Attached; pid = 5725
Listening on port 6666
在本地机器上通过gdb连接到上述远程待调试机器的gdbserver端口:
gdb debug.exe,然后执行命令target remote IP:PORT,IP:port为上述gdbserver中启动的IP:Port
...
(gdb) target remote IP:PORT
此时远程机器显示已经收到客户端的调试连接,如:
Remote debugging from host 192.168.1.20
本地机器连接到远程机器以后,远程的进程会被halt住,此时可以在本地机器执行cont来使远程进程继续执行。
- gdb远程调试release版本
- gdb 如何调试release版本
- gdb 版本release notes
- GDB调试release程序
- GDB调试release程序
- GDB调试release程序
- GDB调试release程序
- gdb调试release版程序
- 调试Release版本应用程序
- 调试Release版本应用程序
- 调试Release版本程序
- 调试Release版本应用程序
- Release 版本调试:
- Release版本的调试
- 调试Release版本应用程序
- 调试Release版本应用程序
- Release版本调试
- 调试Release版本应用程序
- bzoj 1597 土地购买(斜率优化dp)
- vs2017 配置 OpenCV3.2.0
- 编程作业
- android 开发使用 kotlin 进行点击事件监听和界面跳转,直接传也方法作为参数
- gpstart error: Do not have enough valid segments to start the array.
- gdb远程调试release版本
- Java 线程池(ThreadPoolExecutor)原理分析与使用
- 配置secureCRT远程连接图形化显示
- Mac上传图片
- Lambda-in-Java
- 自适应波束形成学习笔记
- ProgressBar
- 收到你的来信,心里暖暖的,那今天就说点什么吧,软创实习怎么样?
- spark job server使用方法