When use gdb to debug, we often get following error for "list" command:
No symbol table is loaded. Use the "file" command
It is because, didn't use gcc -g option to put debug information in executable.
-g Produce debugging information in the operating system’s native format (stabs, COFF, XCOFF, or DWARF). GDB can work with this debugging infor-
mation.
On most systems that use stabs format, -g enables use of extra debugging information that only GDB can use; this extra information makes debug-
ging work better in GDB but will probably make other debuggers crash or refuse to read the program. If you want to control for certain whether
to generate the extra information, use -gstabs+, -gstabs, -gxcoff+, -gxcoff, or -gvms (see below).
Unlike most other C compilers, GCC allows you to use -g with -O. The shortcuts taken by optimized code may occasionally produce surprising
results: some variables you declared may not exist at all; flow of control may briefly move where you did not expect it; some statements may
not be executed because they compute constant results or their values were already at hand; some statements may execute in different places
because they were moved out of loops.
Nevertheless it proves possible to debug optimized output. This makes it reasonable to use the optimizer for programs that might have bugs.
The following options are useful when GCC is generated with the capability for more than one debugging format.
-ggdb
Produce debugging information for use by GDB. This means to use the most expressive format available (DWARF 2, stabs, or the native format if
neither of those are supported), including GDB extensions if at all possible.
DWARF is a debugging file format used by many compilers and debuggers to support source level debugging. It addresses the requirements of a number of proceedural languages, such as C, C++, and Fortran, and is designed to be extensible to other languages. DWARF is architecture independent and applicable to any processor or operating system. It is widely used on Unix, Linux and other operating systems, as well as in stand-alone environments.
GCC manual in Chinese:
http://www.shanghai.ws/gnu/gcc_3.htm
GCC调试信息与GDB使用
本文介绍如何通过GCC的-g选项为可执行文件添加调试信息,并解释了为什么在使用GDB进行调试时需要这些信息。同时介绍了DWARF调试文件格式及其优势。
6050

被折叠的 条评论
为什么被折叠?



