gdb调试异常,执行下一句的时候跑飞了

heronism 2011-04-20 11:23:40
gdb调试跑飞了,n的时候出现了莫名其妙的错误,请高手帮忙分析下怎么回事,如何避免,谢谢

说明:1543哪一行往下走出错,打出下面的东西,xxxxx是我把函数名略去了,再下面是我用info threads打出的线程信息,
1543那一句只是打日志,肯定没问题,CMAgt_MsgProc这个函数是我断到的,不知道问什么gdb出现这样莫名其妙的错误,有没有办法避免,谢谢

(gdb) n
1534 ECM_CM_ONLINE_MSG_DATA* pBufData = VOS_NULL_PTR;
(gdb)
1536 if (VOS_NULL_PTR == pMsgBlock)
(gdb)
1543 Ecm_LogTextOut(DEBUGGING, VOS_PID_CMDATA, USR_LOG(gdb)
[New Thread 0x64dfab70 (LWP 13191)]
0xf7702a30 in __nptl_create_event () from /lib/libpthread.so.0
(gdb) bt
#0 0xf7702a30 in __nptl_create_event () from /lib/libpthread.so.0
#1 0xf7704152 in pthread_create@@GLIBC_2.1 () from /lib/libpthread.so.0
#2 0x0805ac60 in Dcom_SendSouthMessage (pRequest=0x84501b0,
pXmlDoc=0xe0b89888 "<?xml version='1.0' ?><basic-request><params><param key=\"cmd\" value=\"queryftpinfo\"/><param key=\"serverIP\" value=\"10.85.160.101\"/><param key=\"serverID\" value=\"1\"/></params></basic-request>", iOverTime=10, pRespXmlDoc=0xe0b89cd8 "") at ../../src/ecm_dcom.c:388
#3 0x0805b148 in xxxxx
#4 0x08147d98 in xxxxx
#5 0x08144c5e in xxxxx
#6 0x08144531 in xxxxx
#7 0x0815039c in xxxxx
#8 0x08143b9e in CMAgt_MsgProc (pMsgBlock=0xe0834e20) at ../../src/cm_conf_init
#9 0x08179123 in Module_MsgDefaultProcFun ()
#10 0x08180aa0 in msgProceedMsg ()
#11 0x08180d5b in MOD_MsgProcValidHook ()
#12 0x08250436 in vosTickISRTaskEntry ()
#13 0x08209dc2 in tskAllTaskEntry ()
#14 0xf7704725 in start_thread () from /lib/libpthread.so.0
#15 0xf752b1ce in clone () from /lib/libc.so.6
(gdb) info threads
15 Thread 0x64dfab70 (LWP 13191) 0xffffe430 in __kernel_vsyscall ()
8 Thread 0x666e8b70 (LWP 11980) 0xffffe430 in __kernel_vsyscall ()
7 Thread 0x664e7b70 (LWP 11981) 0xffffe430 in __kernel_vsyscall ()
* 6 Thread 0x664dfb70 (LWP 11982) 0xf7702a30 in __nptl_create_event () from /li
5 Thread 0x659fdb70 (LWP 12034) 0xffffe430 in __kernel_vsyscall ()
4 Thread 0x657fcb70 (LWP 12035) 0xffffe430 in __kernel_vsyscall ()
3 Thread 0x661feb70 (LWP 12036) 0xffffe430 in __kernel_vsyscall ()
2 Thread 0x655fbb70 (LWP 12037) 0xffffe430 in __kernel_vsyscall ()
1 Thread 0xf70946f0 (LWP 11979) 0xffffe430 in __kernel_vsyscall ()
...全文
289 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
heronism 2011-04-22
  • 打赏
  • 举报
回复
确实是线程切换导致的,谢谢独孤
heronism 2011-04-20
  • 打赏
  • 举报
回复
你说的线程挂起了,执行别的线程是怎么回事啊,请详细指导下。
gdb的时候,程序别的线程还在跑吗,另外能把gdb中断吗,那这个别的线程执行完毕了是不是就应该回到gdb的调试中去。
分实在不多了,谢谢
太乙 2011-04-20
  • 打赏
  • 举报
回复
thread 6切换线程看看
hongwenjun 2011-04-20
  • 打赏
  • 举报
回复
另建立个简单的工程试试,
分析是GDB的不行,还是代码不对
太乙 2011-04-20
  • 打赏
  • 举报
回复
看thread是运行thread 6
太乙 2011-04-20
  • 打赏
  • 举报
回复
这个是线程挂起了,然后执行别的线程了吧?
jiahehao 2011-04-20
  • 打赏
  • 举报
回复
。。。我问个字符串的小问题都给80分,楼主问GDB调试,居然只给30分。。。。。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧