CodeLite+TDM-GCC调试C++程序,断点无效问题
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++程序,断点无效问题相关推荐
- android studio断点不生效,Android Studio调试设置的断点无效
真他娘的坑爹,今天调试一个程序,在一个Activity里面设置了断点,无论如何代码都不能在断点处停下来,查了一整天才发现原来是这个罪魁祸首 解决办法 解决办法有两种: 第一种就是调试的时候将andro ...
- matlab2008设置子函数断点无效,程序不在断点处停止
本人在使用MATLAB2008a版本时,在主函数中调用了一个自己写的子函数,当我在子函数中设置断点时,点击运行调试时,程序直接运行结束,并没有在我设置的断点处停止.这是为什么呢?这种情况在高版本MAT ...
- Linux系统vscode断点单步运行调试C++程序
安装vscode 安装比较简单略略略略!!!! 配置安装插件 Ctrl+Shift+X检索并安装C++.C++Clang.Cmake.Cmake Tools 创建launch.json文件 用vsco ...
- Eclipse调试不能进入断点 ,在某个工程断点无效
1.环境:windows7 + eclipse4.6.2+ JDK1.8 2.问题:在某个工程内设置断点之后,调试时断点无效,-也就是程序会直接运行到最后,正常执行不报错. ...
- gcc编程4步编译、调试c程序实操详解(Linux系统编程)
gcc编译可以执行程序4步骤:预处理.编译.汇编.链接 一.知识储备(想看实战往下翻) 在linux程序种,c程序需要用gcc进行编译,链接用ld程序,ggc编译完成后可自动调用ld程序完成链接. 调 ...
- 用 GDB 调试Linux程序及有用技巧
用 GDB 调试Linux程序及有用技巧(转) armlinux 2008-06-19 10:48 阅读91 评论0 字号: 大大 中中 小小 GNU的调试器称为gdb,该程序是一个交 ...
- Linux环境下的堆栈--调试C程序
完整的调试过程,跟踪堆栈变化,32位下. 注意64位和此不同. a.c代码: #include <stdio.h> int main() { AFunc(5,6);return 0; } ...
- 使用VC++远程调试Linux程序
为什么要用VC++来调试Linux程序 Linux下面的gdb也很好用,说真的,缺点是在调试大型程序的时候不太方便,比如来回的切换线程,查看堆栈等等,总是没有那么直观,但是VC就好一些,毕竟是GUI界 ...
- 【php】使用gdb调试php程序
1.简介 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.同时GDB也具有例如d ...
- emacs c语言,如何利用Emacs来调试C++程序
俗话说,Emacs是神的编辑器,而Vim是编辑器之神.高手程序员都是用这两样神器进行开发.本人觉得,Emacs之所以厉害,是因为许多在其他编辑器下必须用鼠标点选很多步的操作,在Emacs下都可以通过键 ...
最新文章
- Python 常用内置函数map、zip、filter、reduce、enumerate
- 2019黑龙江大学程序设计竞赛
- 阿里云李飞飞:传统数据库步履蹒跚,未来的机会在哪里?
- 反弹式木马原理_汽车避震器的原理与改装问题
- 今天的中巴等各式车子的企业即时通讯
- Mac下python3配置Sklearn
- mysql的空间查询函数_MYSQL空间查询函数
- android 日历 定制,Android自定义View(CustomCalendar-定制日历控件)
- OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
- Chrome浏览器保存整个网页为图片的方法
- 计算机内存128毫升,内存换算公式(内存怎么换算)
- ios苹果手机 uniapp长按识别二维码图片白色背景问题
- 5G工业无线路由器的优势和应用场景
- android jni 读写sd卡,Android NDK的使用实例——增量更新实战
- 洛谷4315 月下“毛景树”(树链剖分)
- 如何打印int整数的32位二进制数(位运算)
- 是否必须支持虚拟化的CPU才能安装64位系统?
- 如何用gmail绑定qq邮等
- 华清远见上海中心22071班 9.30作业
- 计算机连接不上蓝牙鼠标,win10系统蓝牙鼠标连接不上的图文教程