c++ - 为什么我的程序的 objdump -D 看起来和 .S 不一样

标签 c++ compiler-construction objdump disassembly

我正在学习 C++ 的工具链并试用 objdump。

objdump 的反汇编文件甚至没有“Hello World”这个词。这是为什么?是不是一点都不靠谱?

最佳答案

以下代码:

#include <stdio.h>
int main(void) { printf("Hello world\n"); }

可以用 objdump -Dslx my_prog 完全反汇编,除其他外,它揭示了以下内容:

Contents of section .rodata:
 400598 01000200 00000000 00000000 00000000  ................
 4005a8 48656c6c 6f20776f 726c6400           Hello world.

如果你的不一样,请贴出代码等

关于c++ - 为什么我的程序的 objdump -D 看起来和 .S 不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075466/

相关文章:

c++ - 为什么使用数组大小​​ 1 而不是指针?

c++ - boost::any 测试代码可以使用 Sun CC 编译,但不能使用 g++

c++ - VS2010和C/C++后台编译

Java类加载器: load same class twice

objdump - 为什么 objdump 中缺少信息?

c++ - 如何使用 boolean 数组或 LogicalVector Rcpp::List getPIcvalue() 和 RcppExport SEXP mypackage5_getPIcvalue()

c++ - 为什么我的 strcmp 实现没有返回正确的值?

c++ - GTKMM/C++11 : How to create a custom composite widget out of other widgets?

assembly - x86 程序集 - 编码相对 jmp

c - 访问函数内部声明的静态变量