当前位置:  技术问答>linux和unix

gdb 调试多线程程序 断点处不停止

    来源: 互联网  发布时间:2017-05-29

    本文导语:  本帖最后由 bytxl 于 2014-09-02 18:28:35 编辑 系统中一个deamon程序,/lib下存在libpthread-2.6.1.so 现在要用gdb调试这个程序,上传libthread_db-1.0.so到/lib下,修改权限777 $ sudo ldconfig 重启该deamon,开始调试 $ gdb test `pidof test` -...

本帖最后由 bytxl 于 2014-09-02 18:28:35 编辑
系统中一个deamon程序,/lib下存在libpthread-2.6.1.so
现在要用gdb调试这个程序,上传libthread_db-1.0.so到/lib下,修改权限777
$ sudo ldconfig
重启该deamon,开始调试
$ gdb test `pidof test` -d ~/code
可以看到如下信息(部分省略),说明成功attach到该deamon,并且可以调试多线程:
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
Attaching to program: /test, process 12813
......
Reading symbols from /lib/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 0xb610caf0 (LWP 12813)]
......

然后在程序中打上断点,c继续运行,在界面触发该断点所在功能,出现如下类似信息:

[Switching to Thread 0xb4f09b90 (LWP 12820)]

Breakpoint 1, login_handle (r=0xb4f0930c) at handle.c:235
235             char *psz_username = NULL;
(gdb) 
Continuing.

没有在断点处停止,只是显示了一下断点的信息,然后就Continuing了(上面不是本人使用命令c继续运行的),请牛人指教原因
(另附:几周前还是可以正常调试的,昨天到今天,突然不能这么调试了。本人检查过代码,跟该deamon程序应该是一样的)

|
are u sure the daemon has the same code base as you indicated on the command line to gdb?

did you do any optimization during compilation?

did u try to set breakpoint on the function name instead of a line inside the function?

is this function running in a child process? 

|
多进程 一直用的printf....... 

    
 
 

您可能感兴趣的文章:

  • 土土的问,gdb中如何从一个断点继续执行到下一个断点?(不是单步)
  • gdb 不能保存断点的吗?
  • gdb调试的问题(运行中设置断点)
  • gdb 如何保存断点?
  • gdb的问题:怎么给断点加计数的功能?
  • 怎么用gdb进行断点调试?
  • Linux下的gdb如何跳出循环,如何解除断点
  • 如果GDB中不设断点的话可以单步执行么
  • gdb调试中关于断点的一个疑问
  • gdb是什么命令跳到下一个断点
  • gdb设置断点的时候总是显示No line 19 in file.....
  • 如何用gdb调试共享库(.so),主要是如何设置断点
  • gdb调试直接运行到指定断点处
  • gdb调试---断点
  • gdb调试问题:用break hello.c: 10 设置断点怎么不成功??
  • 谁知道如何下条件断点,用gdb
  • gdb调试多线程程序时的问题, 为何不在断点处停下来?
  • 100分!奇怪的gdb断点问题
  • gdb调试,每次循环怎么运行到指定的断点处,而不是单步调试
  • gdb调试问题,每次一断点就错误,Missing separate debuginfos, use: glibc-2.12-1.7.el6_0.5.x86_64
  • GDB下怎样调试多线程程序?
  • gdb也能调多线程程序吗?
  • 多线程编程下关于gdb程序调试的一个疑问。
  • GDB如何调试子线程,急,在线等!
  • gdb多线程调试问题
  • 如何在gdb调试多线程?
  • GDB调试线程,退出时老是出现异常
  • ~如何GDB调试因pthread_cond_wait()阻塞的线程??~
  • linux下 多线程打印输出看不到,但gdb下就能看到输出,是什么原因呢?
  • 有谁熟悉gdb多线程调试?有个问题想请教
  • 如何用GDB调试某一线程死循环
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何使用linux下gdb来调试python程序
  • gdb调试时命令行参数如何输入?比如main(int argc,char **argv)中,我要把一个filename作为argv[1]传入给gdb调试
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • linux gdb: 我在一台机器上编译的程序用GDB可以调试,把程序放到另外一台机器上调试,调试信息就没有了 这是什么原因呢?
  • GDB调试 GDB挂了。。。
  • gdb 如何调试带命令行参数的程序 如 gdb a.out arg1,arg2
  • linux下用gdb调试程序感觉非常不方便,不知道大家使用的什么工具进行调试的呀?
  • 关于GDB无法调试segmentaton fault的问题,调试就死机
  • GDB调试问题,多共享库调试
  • gdb 怎么调试socket程序
  • 程序调试工具 GDB
  • 写调试器(像gdb)的一般思路是什么
  • gdb调试时的文件格式问题
  • gdb调试的问题,求高手。
  • gdb如何进行调试?
  • gdb调试动态链接库
  • 关于gdb调试资料---详细的
  • 哪位兄弟知道?gdb如何调试动态连接库
  • 在linux下除了gdb外还有没其他好用的调试器?
  • 在windows下编译和调试远程GDB BVRDE
  • gdb 调试
  • 使用gcc gdb的大牛进来说说gdb的强大之处在哪。我刚学linux了,vim我确实体会到了其强大之处。而对gcc gdb,体会不到gdb这工具的强大之处。
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc'
  • gdb 使用问题请教
  • gdb的问题,请教,会者不难,快来拿分
  • 在rh9上无法使用gdb是怎么回事呢
  • gdb高手请指教
  • 请问,有人研究过gdb-insight源码吗?
  • gdb调试
  • Linux下gdb如何追踪进入子进程??急急7777777777777
  • 如何编译gdb


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3