gdb无法为程序设置断点

87 views
Skip to first unread message

yvxiang

unread,
Jan 23, 2013, 9:02:42 AM1/23/13
to xidian_linux
今天刚装上openSUSE12.2 使用GDB调试任何C++程序时,只要设置了断点,然后再点r运行时,都会出现如下提示:

Error in re-setting breakpoint 1: malformed linespec error: unexpected string, ".cpp"


而且程序运行到断点处不会停止。。

各位有没有遇到过这种情况??

曹丰宇

unread,
Jan 23, 2013, 11:10:43 AM1/23/13
to xidian...@googlegroups.com
1.GDB的man上要求使用受支持的编译器编译C++代码,文档提到的有g++和aCC
2.GDB manual 第170页,PDF 184页提到GDB工作语言选择问题,直接开启GDB是自动选择语言,似乎是根据编译时源文件的后缀决定,目测支持的后缀是'.c++'
第二条这里似乎提到断点问题,粗略地看了看,你自己翻一下
快困死,明早我再仔细找找

在 2013年1月23日星期三,yvxiang 写道:
--
您收到此邮件是因为您订阅了“西电开源社区”邮件列表。
要向此邮件列表发帖,请发送电子邮件至 xidian...@googlegroups.com
要取消订阅,请发送电子邮件至 xidian_linux...@googlegroups.com
请通过 https://groups.google.com/group/xidian_linux?hl=zh-CN 访问此网上论坛。
通过 [ipv6 enabled] http://xdlinux.info/http://xdl.in/
[ipv4 only] http://linux.xidian.edu.cn/
[手机]:http://m.xdlinux.info/
访问西电开源社区。
 
 

曹丰宇

unread,
Jan 23, 2013, 9:36:43 PM1/23/13
to xidian...@googlegroups.com
编译器会表明程序使用的代码语言,所以最好选用gdb支持的编译器,g++,aCC
gdb同过source file的扩展关联语言,默认C++的关联只有'.c++'(你可以自己添加扩展名和语言的关联)
手动设定工作语言:set language lang
输入set language可以查看支持的语言列表
set language auto

你的问题manual里有说明:
因为.cpp的扩展名没有关联到C++上,当运行到一个断点时,gdb无法识别程序结构(感觉就是无法识别源代码逻辑结构,不知道改怎么中断),就会报出warning。

输入show language查看当前工作语言
输入info frame(有关命令,但介绍没看懂)
输入info source显示源代码的语言

info extensions显示当前所有扩展名与语言关联的情况

你可以尝试用set extension-language ext language的格式建立扩展名与源代码的关联

试试看吧,我这没试过

在 2013年1月23日星期三,yvxiang 写道:
--
Reply all
Reply to author
Forward
0 new messages