stack-unwinding

stack-unwinding

文章 0 浏览 5

展开导致分段错误

我正在使用向后cpp(https://github.com/bombela/backward-cpp ) 打印堆栈跟踪。然而,这会导致分段错误。以下是堆栈的 gdb 跟踪: 0x00007ffff608e35…

暖心男生 2025-01-10 21:10:06 1 0

我不应该在线程过程中使用 _endthreadex() 来进行堆栈展开吗?

我检查了 win32 环境中线程过程的堆栈展开。 我的测试代码如下。 class Dummy { public: Dummy() { wcout << L"dummy ctor" << endl; } ~Dummy() { wc…

吾家有女初长成 2025-01-01 05:27:11 0 0

当 main 中未捕获异常时,为什么不调用析构函数?

我有以下代码: #include #include #include struct FooError {}; struct Foo { ~Foo() { std::cerr << "~Foo() executed" << std::endl; } explicit …

紧拥背影 2024-12-21 17:03:12 1 0

如何检测析构函数期间异常是否处于活动状态?

在 C++ 中,如何在析构函数体内检测堆栈是否由于抛出异常而被展开?一旦检测到,我可以获得对活动异常的引用吗? 我问这个问题是因为我想添加一些调试…

流年里的时光 2024-12-13 00:05:42 4 0

PHP 类构造函数中的范围展开

我正在学习 PHP 类和异常,并且来自 C++ 背景,以下内容让我觉得很奇怪: 当派生类的构造函数抛出异常时,基类的析构函数似乎不会自动运行: class Ba…

自在安然 2024-12-05 10:42:48 7 0

SIGSEGV 上的 mips _Unwind_Backtrace

在 mips 平台上,我正在尝试进行 Unwind 工作。目前,如果我手动发出 print_trace 堆栈跟踪正确显示如下: backtrace_helper 0x4b6958 backtrace_help…

往日情怀 2024-11-14 15:53:59 7 0

如何在 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) {…

抠脚大汉 2024-11-13 08:44:02 7 0

C++从析构函数抛出异常

这不是从析构函数抛出异常是否安全的问题。 http://www.parashift.com/c++-faq-lite /exceptions.html#faq-17.9 状态: “在堆栈展开期间,所有这些堆…

同展鸳鸯锦 2024-11-03 09:14:53 7 0

RAII 和堆栈展开

直到我对 RAII 和 RAII 的“相互缠绕”(因为缺乏更好的词)的概念为止。堆栈展开是完全(如果不是完全)错误的。我的理解是,使用 RAII 可以防止任何…

月寒剑心 2024-10-30 05:08:37 6 0

dwarf2 中的堆栈展开

我不明白 dwarf2 中的堆栈展开如何确保在一些非常基本的 ABI(应用程序二进制接口)场景中参数的可靠恢复。考虑 ABI,它规定前三个参数必须位于寄存器…

爱的故事 2024-10-20 22:27:53 7 0

抛出一个 boost::shared_ptr<自定义异常>

是否存在以下任何陷阱; if (someCondition) throw boost::shared_ptr( new SomeException( "foo!" ) ); ... catch( const boost::shared_ptr& expRef…

云巢 2024-10-20 14:21:08 7 0

如何在没有 catch/try/raise 的情况下展开(多级返回)堆栈?

当 catch/try 不可用时(即我要展开的代码不受我的控制),我想将堆栈展开到任意级别。这可能吗? 例如,在测试中,我想让我的测试调用一个检查先决条…

弃爱 2024-10-17 21:37:22 10 0

如何在 i386 FreeBSD 上构建 libunwind?

libunwind 在 FreeBSD 8.1 amd64 上作为软件包 (pkg_add -r libunwind) 提供。 它在 FreeBSD 8.1 i386 上不可用。 当我从 http://www.nongnu.org/libu…

若有似无的小暗淡 2024-09-30 01:10:05 15 0

C++ 中的堆栈展开使用Lua时

我最近偶然发现了这个 C++/Lua 错误 int function_for_lua( lua_State* L ) { std::string s("Trouble coming!"); /* ... */ return luaL_error(L,"so…

峩卟喜欢 2024-09-28 22:13:47 11 0

如何检测析构函数中的堆栈展开

我有一个简单的 C++ 对象,在函数 F() 的开头创建,以确保在 F(),通过使用对象的构造函数和析构函数。但是,我不希望在 F() 体内抛出异常时撤消操作…

攒一口袋星星 2024-09-28 20:09:09 7 0
更多

推荐作者

qq_2gSKZM

文章 0 评论 0

∞梦里开花

文章 0 评论 0

qq_IklFPL

文章 0 评论 0

迷途知返

文章 0 评论 0

深海不蓝

文章 0 评论 0

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文