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

问题描述 投票:-2回答:1

使用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)

有人知道我能做什么吗?

gcc gdb
1个回答
0
投票

有人知道我能做什么吗?

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

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

gcc -O -Wall ...

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

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

对此:

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

并重新重建。

© www.soinside.com 2019 - 2024. All rights reserved.