2019独角兽企业重金招聘Python工程师标准>>>

最近使用CodeLite(我使用的TDM-GCC 5.1.0版本编译器)写了个简单的C++程序,调试的时候发现,程序不进断点运行完就退出了,可编译器和调试器的设置都是对的啊。更诡异的是在命令行使用CodeLite调用的GDB程序直接调试程序却能正确的捕捉到断点。于是上网搜索,在StackOverflow上得到了一个回答,是这样说的:

尝试打开Settings -> Debugger Settings -> GNU gdb debugger -> Misc -> Enable debugger full logging选项来获取更详细的CodeLite与GDB之间的交互信息,这样就可以知道GDB停止运行的原因。输出的日志会打印在"Debugger"面板的"Output"标签页。

于是去勾选上调试器设置的“Enable debugger full logging”选项

F5调试源程序,在output标签中获得下面的日志输出

Debug session started successfully!
GNU gdb (GDB) 7.9.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type "show copying"\nand "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".\nType "show configuration" for configuration details.
\nFor bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./CppTest...
done.
>> Debuggee process ID: 6956
[New Thread 6956.0x1b8]
Continuing...
[New Thread 6956.0x34cc]
\nTemporary breakpoint
1, main () at F:/codes/CodeLite/CppTest/main.cpp:18
18\t\tX x;
Internal breakpoint was hit (id=1), Applying user breakpoints and continuing
C:/crossdev/src/gdb-7.9.1/gdb/cp-namespace.c:341: internal-error: cp_search_static_and_baseclasses: Assertion `name[prefix_len + 1] == ':'' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugging session?
(y or n) [answered Y; input not from terminal]
C:/crossdev/src/gdb-7.9.1/gdb/cp-namespace.c:341: internal-error: cp_search_static_and_baseclasses: Assertion `name[prefix_len + 1] == ':'' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nCreate a core file of GDB?
(y or n) [answered Y; input not from terminal]
Debug session ended

注意到错误信息 internal-error: cp_search_static_and_baseclasses: Assertion `name[prefix_len + 1] == ':'' failed.\n,根据这条错误信息我们查到了下面的相关的地址

https://github.com/eranif/codelite/issues/873

http://sourceware-org.1504.n7.nabble.com/PATCH-Fix-problem-handling-colon-in-linespec-PR-breakpoints-18303-td370027.html

通过这两个网页得到的信息,我们知道了是TDM-GCC 5.1.0带着的7.9.1版本的GDB的BUG,切换到以前的版本的GDB就行了。而且经试验当前最新的7.12版本也没有这个问题。至此,问题解决。

转载于:https://my.oschina.net/u/1167407/blog/817203

CodeLite+TDM-GCC调试C++程序,断点无效问题相关推荐

  1. android studio断点不生效,Android Studio调试设置的断点无效

    真他娘的坑爹,今天调试一个程序,在一个Activity里面设置了断点,无论如何代码都不能在断点处停下来,查了一整天才发现原来是这个罪魁祸首 解决办法 解决办法有两种: 第一种就是调试的时候将andro ...

  2. matlab2008设置子函数断点无效,程序不在断点处停止

    本人在使用MATLAB2008a版本时,在主函数中调用了一个自己写的子函数,当我在子函数中设置断点时,点击运行调试时,程序直接运行结束,并没有在我设置的断点处停止.这是为什么呢?这种情况在高版本MAT ...

  3. Linux系统vscode断点单步运行调试C++程序

    安装vscode 安装比较简单略略略略!!!! 配置安装插件 Ctrl+Shift+X检索并安装C++.C++Clang.Cmake.Cmake Tools 创建launch.json文件 用vsco ...

  4. Eclipse调试不能进入断点 ,在某个工程断点无效

    1.环境:windows7 + eclipse4.6.2+ JDK1.8 2.问题:在某个工程内设置断点之后,调试时断点无效,-也就是程序会直接运行到最后,正常执行不报错.               ...

  5. gcc编程4步编译、调试c程序实操详解(Linux系统编程)

    gcc编译可以执行程序4步骤:预处理.编译.汇编.链接 一.知识储备(想看实战往下翻) 在linux程序种,c程序需要用gcc进行编译,链接用ld程序,ggc编译完成后可自动调用ld程序完成链接. 调 ...

  6. 用 GDB 调试Linux程序及有用技巧

    用 GDB 调试Linux程序及有用技巧(转) armlinux   2008-06-19 10:48   阅读91   评论0 字号: 大大  中中  小小 GNU的调试器称为gdb,该程序是一个交 ...

  7. Linux环境下的堆栈--调试C程序

    完整的调试过程,跟踪堆栈变化,32位下. 注意64位和此不同. a.c代码: #include <stdio.h> int main() { AFunc(5,6);return 0; } ...

  8. 使用VC++远程调试Linux程序

    为什么要用VC++来调试Linux程序 Linux下面的gdb也很好用,说真的,缺点是在调试大型程序的时候不太方便,比如来回的切换线程,查看堆栈等等,总是没有那么直观,但是VC就好一些,毕竟是GUI界 ...

  9. 【php】使用gdb调试php程序

    1.简介 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.同时GDB也具有例如d ...

  10. emacs c语言,如何利用Emacs来调试C++程序

    俗话说,Emacs是神的编辑器,而Vim是编辑器之神.高手程序员都是用这两样神器进行开发.本人觉得,Emacs之所以厉害,是因为许多在其他编辑器下必须用鼠标点选很多步的操作,在Emacs下都可以通过键 ...

最新文章

  1. Python 常用内置函数map、zip、filter、reduce、enumerate
  2. 2019黑龙江大学程序设计竞赛
  3. 阿里云李飞飞:传统数据库步履蹒跚,未来的机会在哪里?
  4. 反弹式木马原理_汽车避震器的原理与改装问题
  5. 今天的中巴等各式车子的企业即时通讯
  6. Mac下python3配置Sklearn
  7. mysql的空间查询函数_MYSQL空间查询函数
  8. android 日历 定制,Android自定义View(CustomCalendar-定制日历控件)
  9. OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
  10. Chrome浏览器保存整个网页为图片的方法
  11. 计算机内存128毫升,内存换算公式(内存怎么换算)
  12. ios苹果手机 uniapp长按识别二维码图片白色背景问题
  13. 5G工业无线路由器的优势和应用场景
  14. android jni 读写sd卡,Android NDK的使用实例——增量更新实战
  15. 洛谷4315 月下“毛景树”(树链剖分)
  16. 如何打印int整数的32位二进制数(位运算)
  17. 是否必须支持虚拟化的CPU才能安装64位系统?
  18. 如何用gmail绑定qq邮等
  19. 华清远见上海中心22071班 9.30作业
  20. 计算机连接不上蓝牙鼠标,win10系统蓝牙鼠标连接不上的图文教程

热门文章

  1. yii2搭建完美后台并实现rbac权限控制实例教程
  2. 把握初期企业的发展战略规划
  3. Android RadioButton 语言切换问题
  4. JQuery与springmvc实现单个文件上传操作
  5. Linux gcc编译简介、常用命令
  6. 微信群 保存到通讯录
  7. 通俗编程——白话NIO之Buffer
  8. [React Native Android 安利系列]样式与布局的书写
  9. css布局模型(摘抄自慕课)
  10. 理解嵌入式开发中的一些硬件相关的概念