当前位置: 首页 > news >正文

vscode附着调试

我有一个程序,是别的程序调用启动的,所以需要等它的进程启动后,再附着上去调试。

编写Launch.json:

{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/cmakeBuild/build/bin/abc","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}/cmakeBuild/build/bin","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": false},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"envFile": "${workspaceFolder}/.env"},{"name":"(gdb) Attach","type": "cppdbg","request": "attach""processId":"${command:pickProcess}","program": "${workspaceRoot}/cmakeBuild/build/bin/abc","MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": false},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
}

调试时,选(gdb) Attach,等要调试的进程启动了,按F5,会跳出选择进程的窗口,选择要附加的进程, 附加后,就可以调试了,以前设置的断点,也会被捕捉中断。

有时候,我们要调试的是在进程启动时的代码,等我们附着上后,设置的断点已经运行过去了。这时候可以在进程启动的地方,加延时,方便附着。

int loop = 0;
while(loop <20)
{sleep(1);++loop;
}

这个要加在初始化代码后面,不要影响初始化。会sleep 20秒,附着上后,暂停,修改loop大于20,就退出循环了,往后走了。vscode里,有时候loop会修改不了,就等它自己超过20退出吧。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Day47 | 110.字符串接龙 105.有向图的完全可达性 106.岛屿的周长
  • openGuass——一般元命令
  • Vue JS执行机制和nextTick
  • Python算法工程师面试整理-微积分
  • SAP商业地产管理(RE-FX)
  • 微信小程序如何存储值
  • 集成mybatis-plus框架
  • 3.3、matlab彩色图和灰度图的二值化算法汇总
  • 如何在不格式化的情况下解锁 Android 智能手机密码
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • 【MySQL 11】索引 (带思维导图)
  • 8.4 数据库基础技术-SQL
  • http基础原理及应用
  • 【SQL】窗口函数sum() over ( partition by xx order by xx)
  • 基于game-based算法的动态频谱访问matlab仿真
  • $translatePartialLoader加载失败及解决方式
  • 【翻译】babel对TC39装饰器草案的实现
  • 2018一半小结一波
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • ES6语法详解(一)
  • Gradle 5.0 正式版发布
  • Linux各目录及每个目录的详细介绍
  • magento2项目上线注意事项
  • 基于遗传算法的优化问题求解
  • 警报:线上事故之CountDownLatch的威力
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前嗅ForeSpider教程:创建模板
  • 如何设计一个比特币钱包服务
  • 思考 CSS 架构
  • 算法-图和图算法
  • 微信小程序开发问题汇总
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 积累各种好的链接
  • 数据可视化之下发图实践
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​香农与信息论三大定律
  • # 数仓建模:如何构建主题宽表模型?
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #QT(一种朴素的计算器实现方法)
  • #传输# #传输数据判断#
  • (1)Nginx简介和安装教程
  • (bean配置类的注解开发)学习Spring的第十三天
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一) storm的集群安装与配置
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • ***通过什么方式***网吧
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法