gdb:无法设置断点:“没有加载符号表。使用“file”命令。“

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gdb:无法设置断点:“没有加载符号表。使用“file”命令。“相关的知识,希望对你有一定的参考价值。

使用gdb时,即使我使用file命令,也无法设置任何断点:

   (gdb) file crab_spectrum
    Load new symbol table from "crab_spectrum"? (y or n) y
    Reading symbols from crab_spectrum...(no debugging symbols found)...done.
    (gdb) b file crab_spectrum.c:45
    No source file named file crab_spectrum.c.
    Make breakpoint pending on future shared library load? (y or [n]) y
    Breakpoint 3 (file crab_spectrum.c:45) pending.

当我然后运行代码时,它不会在断点处停止。我正在使用以下Makefile进行编译:

CC =  gcc
LD = gcc
LIBGSL = -L/home/martin/gsl/gsl-2.4/lib -lgsl -lgslcblas -lm
CFLAGSRELEASE = -O -Wall -I/home/dirsonlu/gsl/gsl-2.4/include
LFLAGSRELEASE = -lm -Wl,--rpath -Wl,/usr/local/lib $(LIBGSL)
CFLAGSDEBUG = -g -p  -Wall
LFLAGSDEBUG = -lm 
CFLAGSDEBUG = -g -p  -Wall -W    # -DDEBUG_OUTPUT
LFLAGSDEBUG =  -lm -p -Wl,--rpath -Wl,/usr/local/lib $(LIBGSL) 

LIBS= -L/home/dupont/folder/soft/pgplot -lm -lcpgplot /home/dupont/folder/soft/pgplot/libpgplot.a  -L/usr/X11R6/lib -lX11

CFLAGS = $(CFLAGSRELEASE)
LFLAGS = $(LFLAGSRELEASE)

OBJECTS = 
    crab_spectrum.o initialize.o nel.o sync.o table_fonction.o table_bessel.o ic_lud.o calc_crab_lud.o create_table.o
    #crab_spectrum.o initialize.o nel.o sync.o  ic.o calc_crab_dens.o create_table.o




FIT_IT_OBJECTS = 
    fit_it.o create_table.o initialize.o nel.o sync.o table_bessel.o

FIT_IT_DATA_OBJECTS = 
    fit_it_data.o create_table.o initialize.o nel.o sync.o table_bessel.o   calc_crab_dens.o  ic.o 

FIT_IT_SCALE_OBJECTS = 
    fit_it_scale.o create_table.o initialize.o nel.o sync.o table_bessel.o   calc_crab_manu.o  ic_manu.o 

PRG = crab_spectrum 
crab_spectrum: $(OBJECTS)
    $(LD) $(OBJECTS) $(LFLAGS) -o $(PRG)


clean:
    rm -f *.o $(PRG) $(FIT_IT)

有人知道我能做什么吗?

答案

有人知道我能做什么吗?

用于编译的实际命令是什么?你是怎么调用make的?

机会是,rm *.o; make产生如下:

gcc -O -Wall ...

在这种情况下你想改变这个:

CFLAGS = $(CFLAGSRELEASE)
LFLAGS = $(LFLAGSRELEASE)

对此:

CFLAGS = $(CFLAGSDEBUG)
LFLAGS = $(LFLAGSDEBUG)

并重新重建。

以上是关于gdb:无法设置断点:“没有加载符号表。使用“file”命令。“的主要内容,如果未能解决你的问题,请参考以下文章

GDB再学习:断点调试之硬断点

GDB再学习:断点调试之硬断点

无法在 gdb 中设置断点

使用GNU/gdb调试Linux C/C++可执行程序查看出错源代码、设置断点

GDB调试

Linux编程基础——GDB(设置断点)