SIGSEGV 上的 mips _Unwind_Backtrace
在 mips 平台上,我正在尝试进行 Unwind 工作。目前,如果我手动发出 print_trace 堆栈跟踪正确显示如下: backtrace_helper 0x4b6958 backtrace_help…
如何在 SIGSEGV 上使用 _Unwind_Backtrace 获取 fullstacktrace
我通过代码处理 SIGSEGV: int C() { int *i = NULL; *i = 10; // Crash there } int B() { return C(); } int A() { return B(); } int main(void) {…
C++从析构函数抛出异常
这不是从析构函数抛出异常是否安全的问题。 http://www.parashift.com/c++-faq-lite /exceptions.html#faq-17.9 状态: “在堆栈展开期间,所有这些堆…
抛出一个 boost::shared_ptr<自定义异常>自定义异常>
是否存在以下任何陷阱; if (someCondition) throw boost::shared_ptr( new SomeException( "foo!" ) ); ... catch( const boost::shared_ptr& expRef…
如何在没有 catch/try/raise 的情况下展开(多级返回)堆栈?
当 catch/try 不可用时(即我要展开的代码不受我的控制),我想将堆栈展开到任意级别。这可能吗? 例如,在测试中,我想让我的测试调用一个检查先决条…
如何在 i386 FreeBSD 上构建 libunwind?
libunwind 在 FreeBSD 8.1 amd64 上作为软件包 (pkg_add -r libunwind) 提供。 它在 FreeBSD 8.1 i386 上不可用。 当我从 http://www.nongnu.org/libu…
C++ 中的堆栈展开使用Lua时
我最近偶然发现了这个 C++/Lua 错误 int function_for_lua( lua_State* L ) { std::string s("Trouble coming!"); /* ... */ return luaL_error(L,"so…
Gnu 汇编器 (GAS) 中的 CFI 指令有何用途?
每行后面似乎都有一个 .CFI 指令,而且还有各种各样的指令,例如 .cfi_startproc 、 .cfi_endproc 等。 更多信息。 .file "temp.c" .text .globl main…