Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.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++;堆芯倾卸_C++_Linux_Gcc_Compiler Construction - Fatal编程技术网

C++ 从C++;堆芯倾卸

C++ 从C++;堆芯倾卸,c++,linux,gcc,compiler-construction,C++,Linux,Gcc,Compiler Construction,我有一个精简的linux系统,我必须在另一个系统上交叉编译我需要的所有应用程序。这些应用程序通常是核心的,我从中得到的唯一信息是核心函数和指令偏移量。如果没有其他选择,我将对可执行文件执行objdump,并尝试从指令偏移量和汇编代码片段中猜测源代码。这就是我的生活 注意:应用程序是使用g++交叉编译的,并且是精简的。所以gdb对我帮助不大 问题: 由于编译器/gcc已将源代码行转换为汇编指令,是否有一些选项可以给出指令偏移量和行之间的相关性?您需要使用启用调试信息的-g标志编译源代码,提供您所要

我有一个精简的linux系统,我必须在另一个系统上交叉编译我需要的所有应用程序。这些应用程序通常是核心的,我从中得到的唯一信息是核心函数和指令偏移量。如果没有其他选择,我将对可执行文件执行objdump,并尝试从指令偏移量和汇编代码片段中猜测源代码。这就是我的生活

注意:应用程序是使用g++交叉编译的,并且是精简的。所以gdb对我帮助不大

问题:
由于编译器/gcc已将源代码行转换为汇编指令,是否有一些选项可以给出指令偏移量和行之间的相关性?

您需要使用启用调试信息的
-g
标志编译源代码,提供您所要求的相关性


然后,如果您的应用程序崩溃,您可以在
gdb
中运行它,并在崩溃时检查程序状态。

您需要使用启用调试信息的
-g
标志编译源代码,提供您所要求的相关性


然后,如果应用程序崩溃,您可以在
gdb
中运行它,并在崩溃时检查程序状态。

如果您使用非剥离二进制文件调试核心文件(由剥离二进制文件生成),则可以获得行/文件信息.

如果使用非剥离二进制文件调试核心文件(由剥离二进制文件生成),则可以获取行/文件信息。

使用
-g
创建构建,然后从中获取符号映射。将其保存到某个地方(我建议也使用调试符号保存二进制文件-这样更容易),然后去掉调试符号(使用
strip
program)并将生成的二进制文件部署到目标系统。以下是如何:


崩溃后,使用
-g
-编译的二进制文件恢复转储,或者使用release二进制文件和单独的调试文件恢复转储。如果您有带调试符号的崩溃地址和二进制文件,并且希望将其映射到源代码行,那么您可以使用
addr2line-e您的二进制崩溃地址
,而不是gdb。

使用
-g
创建构建,然后从中获取符号映射。将其保存到某个地方(我建议也使用调试符号保存二进制文件-这样更容易),然后去掉调试符号(使用
strip
program)并将生成的二进制文件部署到目标系统。以下是如何:

崩溃后,使用
-g
-编译的二进制文件恢复转储,或者使用release二进制文件和单独的调试文件恢复转储。如果您有带调试符号的崩溃地址和二进制文件,并且希望将其映射到源代码行,则可以使用
addr2line-e您的二进制崩溃地址
,而不是gdb