开发一个 Linux 调试器(八):堆栈展开 有时你需要知道的最重要的信息是什么,你当前的程序状态是如何到达那里的。有一个 backtrace 命令,它给你提供了程序当前的函数调用链。这篇文章将向你展示如何在 x86_64 上实现堆栈展开以生成这样的回溯。 系列索引 这些链接将会随着其他帖子的发布而上线。 准备环境 断点 寄存器和内存 ELF 和 DWARF 源码和信号 源码级逐步执行 源码级断点 堆栈展开 读取变量 之后步骤 用下面的程序作 linux中国 2024-07-19 贤蛋大眼萌
为什么 const 无法让 C 代码跑得更快? 在几个月前的一篇文章里,我曾说过“有个一个流行的传言,const 有助于编译器优化 C 和 C++ 代码”。我觉得我需要解释一下,尤其是曾经我自己也以为这是显然对的。我将会用一些理论并构造一些例子来论证,然后在一个真实的代码库 Sqlite 上做一些实验和基准测试。 一个简单的测试 让我们从一个最简单、最明显的例子开始,以前认为这是一个 const 让 C 代码跑得更快的例子。首先,假设我们有如下 linux中国 2024-07-18 法医
C++ 函数命名中返回值类型的考虑 在 c++++ 中,函数命名中的返回值类型应遵循以下原则:非 void 返回类型:包含返回值类型(例:getstringlength(size_t))。void 返回类型:不包含返回值类型(例:printinteger(void))。这样做可以提高可读性、可维护性和清晰度,并在特殊情况下允许偏离这些准则。 C++ 函数命名中返回值类型的考虑 决定函数名的一个重要因素便是其返回值类型。明智地选择能增 开发运维 2024-04-25 大树
C++ 函数如何返回 void 类型? c++++ 中 void 函数不返回任何值,它的语法为 void function_name()。常见用途包括:输入用户输入,如获取用户的年龄并打印到控制台。 C++ 中 void 函数的返回类型 在 C++ 中,void 类型是一种特殊的返回类型,表示函数不返回任何值。这与其他函数不同,这些函数通常返回特定类型的值,例如整数、字符串或对象。 void 函数的语法如下: void function 开发运维 2024-04-20 贤蛋大眼萌