首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Boost stacktrace + backtrace获取行号失败

使用Boost stacktrace + backtrace获取行号失败
EN

Stack Overflow用户
提问于 2020-07-19 03:58:15
回答 1查看 585关注 0票数 1

我正在尝试重现Boost Stacktrace文档中的第一个也是最简单的example

代码语言:javascript
复制
#define BOOST_STACKTRACE_USE_BACKTRACE

#include <boost/stacktrace.hpp>
#include <iostream>

void bar(int n) {
    if (n <= 0) {
        // ... somewhere inside the `bar(int)` function that is called recursively:
        std::cout << boost::stacktrace::stacktrace();
        return;
    }
    bar(n-1);
}

int main() {
    bar(4);
}

并且我只获得了部分成功:我得到了函数名,但没有得到代码行:

代码语言:javascript
复制
 0# bar(int) in ./plain_vanilla
 1# bar(int) in ./plain_vanilla
 2# bar(int) in ./plain_vanilla
 3# bar(int) in ./plain_vanilla
 4# bar(int) in ./plain_vanilla
 5# main in ./plain_vanilla
 6# __libc_start_main at ../csu/libc-start.c:342
 7# _start in ./plain_vanilla

(我的源文件名为plain_vanilla.cpp,可执行文件为plain_vanilla。)我使用的是Boost 1.73.0,它是我在Devuan 3.0 GNU/Linux上构建的。libbacktrace已安装(它是glibc的一部分),我正在链接它。

这是否更有可能是我做错了什么,或者是库中的一个真正的bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 04:12:58

要获取堆栈跟踪中的更多信息,请使用调试版本。对于GCC,使用-g-fno-omit-frame-pointer标志编译一个项目。

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

https://stackoverflow.com/questions/62973197

复制
相关文章

相似问题

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