gdb can not find debug info on Centos

此生再无相见时 提交于 2019-12-31 05:03:07

问题


I am trying to figure out a very strange issue. I have CentOS 6.5 system with gdb:

GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)

and gcc:

gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)

I have this file:

#include<stdio.h>
int main()
{
    printf("OK!");
    return 0;
}

which I compile with:

gcc -o a a.c -g -O0

The file seems to be fine:

$ file a
a: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

But when I try to debug it, this happens:

$ gdb a
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from a...done.
(gdb) b main
Breakpoint 1 at 0x4004e4
(gdb) r 
Starting program: a 

Breakpoint 1, 0x00000000004004e4 in main ()
(gdb) l
1   /* Run time dynamic linker.
2      Copyright (C) 1995-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
3      This file is part of the GNU C Library.
4   
5      The GNU C Library is free software; you can redistribute it and/or
6      modify it under the terms of the GNU Lesser General Public
7      License as published by the Free Software Foundation; either
8      version 2.1 of the License, or (at your option) any later version.
9   
10     The GNU C Library is distributed in the hope that it will be useful,
(gdb) l main
No line number known for main.

I.e., gdb refuses to see any debug information. Anybody has an idea what could be a problem here?


回答1:


Your GDB is pretty old. Your GCC is fairly new.

I suspect that your GCC is emitting DWARF4 debug info (default as of gcc-4.8 according to release notes), which your GDB does not recognize.

Do you get better result with -gdwarf-2 instead of -g?

If so, upgrade your GDB or use -gdwarf-2 with this compiler.



来源:https://stackoverflow.com/questions/28132052/gdb-can-not-find-debug-info-on-centos

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!