• 4613阅读
  • 3回复

一个在调试过程中经常发现被调用的回调函数(其实我也不知道是回调还是inline内嵌的) [复制链接]

上一主题 下一主题
离线zy498420
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-29
调试过程中经常遇到下面情况:
发起一个调用之后,next之后突然出现下列代码:
if(d->deref())
bool deref() {return !--count;}
这段代码出自$QTDIR/include/qshared.h 我看不出来他的功能,网上能够找到对于这个头文件和里面的struct QShared的说明也很少.
不理睬之后继续next然后下面的代码就会发生各种灵异事件:已经定义的变量gdb说在当前上下文找不到这个symbol。如果继续下去,涉及这个变量的函数调用也无法step。
有哪位大虾能出来解惑吗?鄙人正在做一个兼职的嵌入式项目。上面的事件在federal 虚拟机上面遭遇。敬请指教!
离线zy498420

只看该作者 1楼 发表于: 2009-04-29
补充一点,我的代码干干净净的,绝对没有上面那段代码,gdb突然跳出来的一段代码确实让人感觉奇怪,然后发生灵异事件就更让人觉得奇怪了。上面的代码出现在一个包含 Q_OBJECT的类的构造函数之中,
离线zy498420

只看该作者 2楼 发表于: 2009-04-29
补充一点,我的代码干干净净的,绝对没有上面那段代码,gdb突然跳出来的一段代码确实让人感觉奇怪,然后发生灵异事件就更让人觉得奇怪了。上面的代码出现在一个包含 Q_OBJECT的类的构造函数之中,
离线foxyz

只看该作者 3楼 发表于: 2009-04-30
楼主对Qt不太熟悉阿?qshared.h是Qt的源文件,你跟踪进去这里也很正常。但是 这个文件要是有问题那还要QT干吗?
Q_OBJECT也是QT大名鼎鼎的一个宏
快速回复
限100 字节
 
上一个 下一个