小编use*_*212的帖子

缺少文件名的地址[GDB]

我有以下示例代码

    #include<stdio.h>
    int main()
    {
      int num1, num2;
      printf("Enter two numbers\n");
      scanf("%d",&num1);
      scanf("%d",&num2);
      int i;
      for(i = 0; i < num2; i++)
        num1 = num1 + num1;
      printf("Result is %d \n",num1);
          return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我使用-g选项将此代码编译为gcc.

gcc -g file.c
Run Code Online (Sandbox Code Playgroud)

生成单独的符号文件

objcopy --only-keep-debug a.out a.out.sym
Run Code Online (Sandbox Code Playgroud)

从a.out中删除符号

strip -s a.out
Run Code Online (Sandbox Code Playgroud)

在gdb中加载此a.out

gdb a.out
Run Code Online (Sandbox Code Playgroud)

gdb说"找不到调试信息"很好.然后我在gdb中使用add-symbol-file命令

(gdb) add-symbol-file a.out.debug [Enter]
The address where a.out.debug has been loaded is missing
Run Code Online (Sandbox Code Playgroud)
  • 我想知道如何找到这个地址
  • 是否有任何命令或技巧可以找到它?
  • 这个地址代表什么?

我知道gdb有一个其他的命令符号文件,但它会覆盖以前加载的符号.所以我必须使用此命令在gdb中添加许多符号文件.我的系统是64位运行ubuntu LTS 12.04 …

linux gdb memory-address

10
推荐指数
1
解决办法
6718
查看次数

标签 统计

gdb ×1

linux ×1

memory-address ×1