免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5191 | 回复: 13
打印 上一主题 下一主题

请问我这个C++程序怎么不能用gdb罗列代码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-08 18:06 |只看该作者 |倒序浏览
我找了一个boost的聊天服务器的例子,想用gdb调试,我用CMake设置为debug模式,可是当我
gdb -p xxx
时,显示:
Attaching to process 8003
Reading symbols from /home/zhen/works/c++/boost/asio/chat/build/server...done.
Reading symbols from /usr/lib/libboost_system-mt.so.1.38.0...Reading symbols from /usr/lib/debug/usr/lib/libboost_system-mt.so.1.38.0...done.
done.
Loaded symbols for /usr/lib/libboost_system-mt.so.1.38.0
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/libm.so.6...Reading symbols from /usr/lib/debug/lib/libm-2.9.so...done.
done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...Reading symbols from /usr/lib/debug/lib/libgcc_s.so.1...done.
done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/libc.so.6...Reading symbols from /usr/lib/debug/lib/libc-2.9.so...done.
done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/libpthread-2.9.so...done.
[Thread debugging using libthread_db enabled]
done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/librt.so.1...Reading symbols from /usr/lib/debug/lib/librt-2.9.so...done.
done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/lib/ld-2.9.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007fb24a9d8bb3 in __epoll_wait_nocancel () from /lib/libc.so.6
(gdb) list
1       fstab.c: 没有那个文件或目录.
        in fstab.c
(gdb)

请问我这问题在哪呢?

我用的系统: Debian @ amd64。

论坛徽章:
0
2 [报告]
发表于 2009-09-08 18:12 |只看该作者
gdb本来支持C++就不咋的
=================================
没事扯CMake干啥?

[ 本帖最后由 prolj 于 2009-9-8 18:31 编辑 ]

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
3 [报告]
发表于 2009-09-08 18:29 |只看该作者
fstab.c 是你自己的源代码么?
怎么感觉是linux自己的库文件中使用的代码呢。如果是linux的代码,要想list,就必须装linux的源代码才行啊。

论坛徽章:
0
4 [报告]
发表于 2009-09-08 18:33 |只看该作者
我是在学习boost::asio,需要用到libboost_system,因为要用到epoll,估计是需要进行系统调用吧!
但是这个fstab.c我就是不知道是哪个国家来的。

怎么才能让gdb支持它喔!



[ 本帖最后由 kytexzy 于 2009-9-8 18:35 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-09-08 18:35 |只看该作者
fatab.c应该是来自Linux

论坛徽章:
0
6 [报告]
发表于 2009-09-08 18:42 |只看该作者
请哪位教教怎么用gdb 调试C++ asio库相关的代码。

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
7 [报告]
发表于 2009-09-08 18:53 |只看该作者
和调试C代码没什么两样啊。
可以参考下面的网页啊
http://bbs.chinaunix.net/viewthread.php?tid=1430107

论坛徽章:
0
8 [报告]
发表于 2009-09-08 20:04 |只看该作者
你应该先执行 backtrace 命令,看一下堆栈,甚至 info threads,看看是哪个线程,然后选合适的线程的某个合适的frame进行查看。

你的程序会调用到glibc里面的东西,而glibc一般是没有debug信息的,除非你用带debug的glibc。这个fstab.c有可能是glibc里面的东东

论坛徽章:
0
9 [报告]
发表于 2009-09-09 10:53 |只看该作者
原帖由 drangon 于 2009-9-8 20:04 发表
你应该先执行 backtrace 命令,看一下堆栈,甚至 info threads,看看是哪个线程,然后选合适的线程的某个合适的frame进行查看。

你的程序会调用到glibc里面的东西,而glibc一般是没有debug信息的,除非你用带 ...


这样子的话我怎样在gdb中浏览程序的代码呢?我又设置程序的断点呢?

论坛徽章:
0
10 [报告]
发表于 2009-09-09 17:06 |只看该作者
asio的服务端程序Linux下用什么方法调试比较好?好像std::cout也打印不出来消息!不过用std::cerr可以!
但用print来调试也太低级了吧!我这个新手不大懂。



[ 本帖最后由 kytexzy 于 2009-9-9 17:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP