Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;不使用';t将数据放入.text部分_C++_Visual Studio 2010_Assembly_G++_Disassembly - Fatal编程技术网

C++ C++;不使用';t将数据放入.text部分

C++ C++;不使用';t将数据放入.text部分,c++,visual-studio-2010,assembly,g++,disassembly,C++,Visual Studio 2010,Assembly,G++,Disassembly,我正在用libdisasm分解我的可执行文件 然而,由于函数之间和函数内部都有数据和跳转表,所以在反汇编可执行文件时会出现很多问题 生成的.map文件只列出了我的可执行文件中函数的地址,但没有列出它们的大小,因此它不断地分解VisualStudio编译到.text部分的数据块 因为每次调用和跳转都必须在我将新操作码插入.text部分时修复。如果反汇编不完整且不准确,则在重新生成时会导致运行时崩溃 有没有办法: 使visual studio仅编译.text部分中的代码 让VisualStudio

我正在用libdisasm分解我的可执行文件

然而,由于函数之间和函数内部都有数据和跳转表,所以在反汇编可执行文件时会出现很多问题

生成的.map文件只列出了我的可执行文件中函数的地址,但没有列出它们的大小,因此它不断地分解VisualStudio编译到.text部分的数据块

因为每次调用和跳转都必须在我将新操作码插入.text部分时修复。如果反汇编不完整且不准确,则在重新生成时会导致运行时崩溃

有没有办法:

  • 使visual studio仅编译.text部分中的代码
  • 让VisualStudio输出一种跟踪什么是代码和什么是 .text部分中的数据
或者是否有一个编译器不将数据放入.text节?
我已经尝试过g++了,它还将数据附加到.text节的末尾。

如果有帮助,您可以使用它来控制放入内容的节?“生成的.map文件只列出了我的可执行文件中函数的地址,但没有列出它们的大小”也许你应该集中精力解决这个问题。@LightnessRacesinOrbit我试图在返回之前将其禁用,但由于一个函数中可能有多个返回,因此省略了一些代码。我没有看到任何迹象表明.map文件会给出函数大小。我在旧版本的visual studio中看到,您可以输出行号,但这一点已经被降低了。@LightnessRacesinOrbit gesundheitWouldn
-f函数节
让GCC将每个函数都放在自己的节中?当然,链接器合并了整个组,但是您可以从.o文件中知道每个贡献有多大。