堆栈展开 问答列表

std::move 是让堆栈碎片化,还是在将对象移动到调用方后重新排列堆栈?

作者:muaz 提问时间:6/29/2022

我已经阅读了几个答案和许多关于移动语义的文章,所以它只是一个静态转换到右值引用,这个问题是关于它对堆栈的影响,那么堆栈在移动后是否留下了碎片?还是以某种方式重新排列?由于堆栈移动的对象不受堆栈展开的影...

如何在ARM上生成可用的调用堆栈?

作者:bigmuscle 提问时间:6/5/2023

我在ARM上开发C++应用程序(树莓派,g++(树莓派8.3.0-6+rpi1)8.3.0 ).当我尝试调试代码或应用程序在代码中崩溃时,我会得到正确的调用堆栈,没有任何问题。但是,当应用程序在外部库...

当“嵌套堆栈展开”可以吗?

作者:grizzlybears 提问时间:6/7/2022

据我了解,我们不能从 dtor 抛出异常, 原因是这样说的: “如果在'堆栈展开'中抛出异常,则没有明确的方法来处理'嵌套展开',因此禁止'从 DTOR 抛出'。” 让我感到困惑的是,为了遵守上述规...

我应该使用 'std::uncaught_exceptions()' 来决定是否从我的 dtor 抛出异常吗?[已结束]

作者:einpoklum 提问时间:11/29/2022

已关闭。这个问题是基于意见的。它目前不接受答案。 想改进这个问题吗?更新问题,以便可以通过编辑这篇文章来用事实和引文来回答。 12个月前关闭。 改进此问题 我有一个类,其 ctor 进行驱动程...

.eh_frame 与 .debug_frame 部分?

作者:Fee 提问时间:5/8/2023

该部分似乎包含堆栈展开信息,并由矮人标准定义。.debug_frame 该部分似乎基本上包含相同的信息,但有一些细微的差异,并且由 linux 基金会定义.eh_frame 为什么同一件事有两个非...

C++ 实现中的异常处理:什么是展开库输入的用于破坏本地对象的“替代函数入口点”?

作者:alex35833 提问时间:7/16/2023

这是一个非常简单的 c++ 文件 class C { public: C(){} ~C(){} }; void g() { throw std::exception(); } void f...

堆垛放卷背后的机制是什么?

作者:Dmitry Kuzminov 提问时间:11/11/2022

我试图理解 C++ 中堆栈展开背后的机制。换句话说,我对这个功能是如何实现的(以及这是否是标准的一部分)感兴趣。 因此,线程会执行一些代码,直到引发异常。当抛出异常时,用于记录状态和展开堆栈的线程/...

在 catch 块之前抛出异常后如何打印堆栈跟踪(堆栈展开)

作者:Mazen Ak 提问时间:11/4/2021

假设我们有以下代码: #include <exception> void funcA() { funcB(); } void funcB() { funcC(); } void func...

STM32 二进制大小突然增加

作者:Marcell Juhász 提问时间:10/26/2022

我目前正在尝试嵌入式 C++ 编程,我正在尝试理解 ST 提供的 C HAL,在现代 C++ 中对其进行返工,优化一些东西等。 我到了可以闪烁 LED 的地步。我当前二进制文件的大小是 1800 字...

ret后说明,热/冷分裂的副作用和异常?

作者:Joseph Garvin 提问时间:4/30/2023

我想检查 GCC 是否确保在抛出异常时为运行析构函数生成的额外代码放在二进制文件的冷部分,以使这些指令远离“快乐路径”并避免导致指令缓存压力。所以我在下面做了一个例子(Godbolt 链接),其中 G...


共10条 当前第1页