首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >s390x上的断点

s390x上的断点
EN

Stack Overflow用户
提问于 2012-09-27 07:31:00
回答 2查看 74关注 0票数 1

我在S390x的GDB中工作。

我有一个函数,它基本上可以做到这一点:

代码语言:javascript
复制
Item *getItemFromRef( PrimaryDataStructure pds, size_t ref ) {
    Item *returnValue = NULL;
    SecondaryDataStructure sds = getSecondaryFromPrimary(pds, ref)
    if (sds) {
        returnValue = getItemFromRefSecondary(sds, ref);
    }
    return returnValue;
}

我已经在getItemFromRefgetItemFromRefSecondary上设置了断点。getItemFromRef断点可以正常触发,但getItemFromRefSecondary从不触发。这是意料之中的吗?有没有办法让它着火?我做错了什么?即使我禁用了getItemFromRef的断点,也会发生这种情况。

编辑:使用gdb 6.8.50

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-28 04:16:33

我今天再次查看了符号,发现两个不同的动态库正在导入相同的函数符号,并且断点被设置为错误的函数版本。

票数 1
EN

Stack Overflow用户

发布于 2012-09-27 07:35:57

有没有可能getItemFromRefSecondary在那个时候被内联了呢?当您进入调试器时(由于调试信息),它可能会报告内联函数名,但只有当它是真正的函数调用时,调试器才会中断。

您可以使用较少的优化进行编译(或者使用-O0不进行优化),或者如果这样做太具侵入性,您可以强制函数不内联__attribute__((__noinline__)) (假设您使用gcc构建)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12611978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档