28得票1回答
堆栈追踪和回溯有什么区别?

我本以为可以在网上找到答案,但是我没有找到。这两者有什么区别吗?人们说当某个异常被抛出时会生成一个“backtrace”,而一个“stack trace”则是从应用程序启动点到抛出异常点的方法调用列表。如果我们将堆栈跟踪视为数组,那么最后一个元素将是抛出异常的方法。对于“back-trace”...

31得票2回答
可以使用libSegFault.so获取SIGABRT的回溯吗?

魔法咒语LD_PRELOAD=/lib/libSegFault.so someapp 使用libSegFault.so启动 someapp,在出现 SIGSEGV 时提供回溯信息,如 多个 不同的 地方所描述的一样。 除了使用类似于signal(7)的方法来导致SIGABRT调用SIGSEG...

7得票3回答
如何在MIPS架构上获取当前PC寄存器的值?

我想在MIPS上执行回溯(backtrace)操作。 然后,我遇到了一个问题:如何获得当前PC寄存器的值,因为它不属于32个普通寄存器之一.. 感谢您的建议。

24得票3回答
从addr2line获取的行号错误

我试图在C++程序的回溯(backtrace)中找到一个调用的确切行。现在,我正在使用以下代码(来自backtrace的man页面)获取跟踪信息: void *bt_buffer[1000]; char **bt_strings; int bt_nptrs = backtrace(b...

24得票2回答
如何在我的C++程序中访问`addr2line`功能?

我需要从C++程序内获取由addr2line提供的信息(函数调用的回溯源文件和行号)。 我知道可以直接调用addr2line作为子进程,并且可以将addr2line的源代码复制到我的程序中(该程序也是GPL许可)。但这段代码看起来很复杂,直接使用不太舒服。anyway,bfd的意思是什么?我更...

35得票1回答
Linux内核崩溃调用跟踪中的问号'?'的含义是什么?

调用跟踪包含如下条目: [<deadbeef>] FunctionName+0xAB/0xCD [module_name] [<f00fface>] ? AnotherFunctionName+0x12/0x40 [module_name] [<deaffee...

18得票2回答
如何在RSpec 2中缩短测试失败的回溯信息?

当我的测试代码遇到错误时,我会收到类似以下的信息:Vendor should reject duplicate names Failure/Error: user_with_duplicate_email.should_not be_valid expected valid...

10得票3回答
堆栈跟踪和命名空间中的函数

我正在尝试在我的C++程序执行某些时刻获取回溯。 为此,我正在使用backtrace和backtrace_symbols。大致如下:std::string stacktrace( unsigned int frames_to_skip ) { std::string str; ...

35得票3回答
如何取消堆栈展开以获取指定堆栈指针(SP)的回溯?

我正在为Android(仅限ARM)编写此内容,但我相信原则对于通用Linux也是相同的。我试图从信号处理程序中捕获堆栈跟踪,以便在我的应用程序崩溃时记录它。这是我使用<unwind.h>想出来的方法。初始化:struct sigaction signalhandlerDescri...

294得票10回答
如何在PHP中获取调用函数/方法的名称?

我知道debug_backtrace函数,但我正在寻找一些可以直接使用的类似于GetCallingMethodName()函数的实现?如果这个函数能够提供方法所在的类(如果确实是一个方法),那就更好了。