no symbol table

Keith Owens kaos at sgi.com
Thu Sep 4 17:10:22 PDT 2003


On Thu, 4 Sep 2003 14:09:15 -0700 (PDT), 
Sooraj P <bosguy674 at yahoo.com> wrote:
>  I am running redhat 9 kernel (2.4.20) on an i386 machine
>  I have installed kdb 4.3.
> 
>   At the kdb prompt when I try to setup a breakpoint by using the function name its give me an error.
>eg: kdb> bp sys_write
>diag:  -15 : illegal numeric value
> 
>   It seems that the symbol table is not loaded.

You probably got a rejected patch, most likely on the top level
Makefile, check for rejected patches.  The top level Makefile should
look like this, RH 9 may add $(CRYTPO) to LD_VMLINUX.

LD_VMLINUX	:= $(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o init/do_mounts.o \
			--start-group \
			$(CORE_FILES) \
			$(DRIVERS) \
			$(NETWORKS) \
			$(LIBS) \
			--end-group
ifeq ($(CONFIG_KALLSYMS),y)
LD_VMLINUX_KALLSYMS	:= $(TMPPREFIX).tmp_kallsyms3.o
else
LD_VMLINUX_KALLSYMS	:=
endif

vmlinux: include/linux/version.h $(CONFIGURATION) init/main.o init/version.o init/do_mounts.o linuxsubdirs
	@$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" kallsyms

.PHONY:	kallsyms

kallsyms:
ifeq ($(CONFIG_KALLSYMS),y)
	@echo kallsyms pass 1
	$(LD_VMLINUX) -o $(TMPPREFIX).tmp_vmlinux1
	@$(KALLSYMS) $(TMPPREFIX).tmp_vmlinux1 > $(TMPPREFIX).tmp_kallsyms1.o
	@echo kallsyms pass 2
	@$(LD_VMLINUX) $(TMPPREFIX).tmp_kallsyms1.o -o $(TMPPREFIX).tmp_vmlinux2
	@$(KALLSYMS) $(TMPPREFIX).tmp_vmlinux2 > $(TMPPREFIX).tmp_kallsyms2.o
	@echo kallsyms pass 3
	@$(LD_VMLINUX) $(TMPPREFIX).tmp_kallsyms2.o -o $(TMPPREFIX).tmp_vmlinux3
	@$(KALLSYMS) $(TMPPREFIX).tmp_vmlinux3 > $(TMPPREFIX).tmp_kallsyms3.o
endif
	$(LD_VMLINUX) $(LD_VMLINUX_KALLSYMS) -o $(TMPPREFIX)vmlinux
ifneq ($(TMPPREFIX),)
	mv $(TMPPREFIX)vmlinux vmlinux
endif
	$(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
	@rm -f $(TMPPREFIX).tmp_vmlinux* $(TMPPREFIX).tmp_kallsyms*


Also check arch/i386/vmlinux.lds for these lines

  __start___kallsyms = .;	/* All kernel symbols */
  __kallsyms : { *(__kallsyms) }
  __stop___kallsyms = .;




More information about the kdb mailing list