C/C++调试:gdbserver的简单使用
1.角色:host和target
host是运行gdb的机器
target是运行gdbserver的机器
gdbserver提供一个网络服务,gdb remote到gdbserver上后进行调试
2. 基本要求:
- host和target可以网络通信,ping通
- host上的gdb和target上的gdbserver版本尽量一致(?)
- 编译好的可执行程序a.out,放在target上;使用'-g'选项编译;
- host上需要能访问到a.out对应的源码文件:可以是NFS共享文件,也可以是两份源码(分别放在host和target上,甚至target上不需要源码??)
3. 基本步骤
- 编译出a.out放到target上
- target上执行:
gdbserver :7788 ./a.out,其中7788是端口号可以改 - host上确保能访问到a.out对应的源码(如果是多个文件的工程,要保证目录结构也一致)
- host上执行
cgdb target remote xx.xx.xx.xx:7788 [args]
其中
xx.xx.xx.xx是target的ip地址,7788是先前在target上gdbserver对应的端口号,[args]表示参数列表,如果a.out需要传参需要在这里传入(我测试下来,host上没法传args) - host上使用gdb命令调试
set args -b ITENSOR -d ../dlc/bvlc_alexnet.dlc -i target_raw_list.txt -o output
4. 实例记录
为了调试一个ubuntu下程序crash后直接导致系统重启的bug,我的host和target都是ubuntu系统。
cgdb
target remote 172.17.122.120:7788
b 396
c
b 402
c
C/C++调试:gdbserver的简单使用的更多相关文章
- visual studio code 调试nodejs 配置简单HTTP服务器
介绍 Visual Studio Code是一个轻量级的Web集成开发环境on Linux,Mac and Windows,特别是作为前端人员来了, 多了一个可供选择的生产力工具IDE,调试js代码简 ...
- Mysql调试存储过程最简单的方法
以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且Mysql没有比较好的调试存储过程的工具.今天google了下发现可以用select + 变量名的方法来调试...真是让我汗颜啊. ...
- 内核调试神器SystemTap — 简单介绍与使用(一)
a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 简单介绍 SystemTap是我眼下所知的最强大的内核调试工具,有些家伙甚 ...
- Chrome浏览器 Console调试台的简单使用
打开调试台 方法1:在chrome浏览器中打开网页,按下F12,点击下图框选内容. 方法2: 浏览器中鼠标右键选择查看网页源代码后,再按上图操作. 调试台的功能 (因为是第一次使用这个调试台,只能罗 ...
- eclipse的调试方法的简单介绍
声明:本文不是自己 作为编程人员,程序的调试是一项基本功.在不使用IDE的时候,程序的调试多数是通过日志或者输入语句(System.out.println)的方式.可以把程序运行的轨迹或者程序运行过程 ...
- OPPO realme 2在哪里打开Usb调试模式的简单步骤
每当我们使用PC通过数据线链接到安卓手机的时候,如果手机没有开启USB调试模式,PC则没能成功识别我们的手机,这时我们需要找解决方法将手机的USB调试模式开启,下文我们记录一下OPPO realme ...
- OPPO R11s在哪里打开Usb调试模式的简单方法
就在我们使用pc链接安卓手机的时候,如果手机没有开启usb调试模式,pc则不能够成功读到我们的手机,如果遇到此情况我们需要找方法将手机的usb调试模式打开,本文我们记录一下OPPO R11s如何开启u ...
- 基于串口调试助手的WIFI模块调试-FPGA简单联网(点灯)
根据正点原子的<ATK-ESP8266 WIFI用户手册>,使用XCOM V2.2串口调试助手测试WIFI模块[26].在本系统中运用到的功能主要是TCP/IP模式中的TCP Client ...
- MPLAB X IDE调试仿真功能简单入门
仿真分为硬件仿真和软件仿真,这里的硬件仿真和软件仿真的区别,就不多说了,相信大家都听说过这两个概念. 我这里想给大家介绍的是“Set PC at Cursor”--“设置PC到光标处”这个功能,这个功 ...
随机推荐
- 【Python】 vscode使用code-runner 调试代码
插件名称: code-runner 插件设置: "code-runner.executorMap": { "python" : "set PYTHON ...
- 导出excel按照指定格式
1.项目有个需求,要按照特定格式 导出Excel表格. 正常的都是一行 ,下面是数据.这次有个变动,就是每隔 几列要换行,下面是数据.在下面是数据部分.花了一上午写了下需求,不难但是花时间 //实现特 ...
- siglongjmp和sigsetjmp 用法
1. 引入原因 由于在信号处理期间自动屏蔽了正在被处理的信号,而使用setjmp/longjmp跳出信号处理程序时又不会自动将 信号屏蔽码修改会原来的屏蔽码,从而引起该信号被永久屏蔽. 可以使用sig ...
- Linux磁盘空间查看、磁盘被未知资源耗尽
Linux系统中,当我们使用rm在Linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄, 那么Linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%, ...
- es查询和更新 语句示例
文档目录: https://www.elastic.co/guide/index.html GET _search { "query": { "match_all&quo ...
- 解决org.springframework.dao.DeadlockLoserDataAccessException
添加链接池后批量添加更新出现了死锁 org.springframework.dao.DeadlockLoserDataAccessException: ### Error updating datab ...
- ASP.NET Core 中间件Diagnostics使用 异常和错误信息
ASP.NET Core 中间件(Middleware)Diagnostics使用.对于中间件的介绍可以查看之前的文章ASP.NET Core 开发-中间件(Middleware). Diagnost ...
- Redis 的主从复制(Master/Slave)
目录 1. 是什么 2. 能干嘛 3. Redis主从复制讲解 (1). info replication:查看 目标redis 主从情况 (2) . 配从库不配主库 (3). 常用策略 (4). 复 ...
- 【springcloud】Transaction rolled back because it has been marked as rollback-only
问题: 一个ajax请求,发生系统错误,错误内容:Transaction rolled back because it has been marked as rollback-only 原因是调用的s ...
- 找出二进制数中bit为1的最(高/低)索引
题1. 给定一个无符号整型数据(unsigned int),找出其对应二进制数据中bit位为1的最高/低索引. 比如:对于数据0,返回0:数据1,返回1:数据0x80000000,返回32: 题2. ...