Category
GDB.

Synopsis
        gdb cannot find line numbers of certain weak symbols during backtrace

Confidential
No

Severity
Serious

Priority
Medium

Submitter-Id
net.

Release
% gdb
GNU gdb (GDB) 7.7

Environment
*         the operating system verson (output of uname -a)
Linux lc-sj1-4507 2.6.18-308.11.1.el5 #1 SMP Fri Jun 15 15:41:53 EDT 2012 
x86_64 x86_64 x86_64 GNU/Linux
*         the compiler version (for GCC, the output from gcc -v)
g++ (GCC) 4.7.2
*         how GDB was configured (the This GDB was configured as line from 
GDB's startup text)
This GDB was configured as "x86_64-unknown-linux-gnu".
How-To-Repeat

          Unfortunately I don't have a simple testcase to repeat. I will work 
on it in the background, to see if I can reproduce it.

Here are the compile flags I used:

g++ -O0 -ggdb -pthread -m32  -fPIC -Wall -Wno-unknown-pragmas -Wno-error 
-Wno-deprecated  -Wno-unused-variable -Wno-overloaded-virtual -Wno-enum-compare 
-Wno-write-strings -fpermissive -Wno-div-by-zero ...

I have also tried -fno-inline and it made no difference.

Description

The problem is that gdb does not print line numbers for only couple items in 
the stack frame even though everything was built using the "-ggdb" switch. Here 
is a stack trace, notice that #10 and #11 do not have the file and line numbers 
associated with them, everything else does.

(gdb) where
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x002d5df0 in raise () from /lib/libc.so.6
#2  0x002d7701 in abort () from /lib/libc.so.6
#3  0x002cf26b in __assert_fail () from /lib/libc.so.6
#4  0x082e0d0f in 
FLEX_HASH_TABLE::search_bank<TD3::uft_search_stage_params>::check_base_entry_width
 (this=0x8a88f7c <BM_BaseTest::Iss+65564>,
    base_entry_width=4, req_in=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/include/ip/flex_hash_table/src/search_bank.h:1119
#5  0x082dd698 in 
FLEX_HASH_TABLE::search_bank<TD3::uft_search_stage_params>::table_search 
(this=0x8a88f7c <BM_BaseTest::Iss+65564>, req_in=...,
    rst_out=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/include/ip/flex_hash_table/src/search_bank.h:717
#6  0x082da27d in 
FLEX_HASH_TABLE::search_bank<TD3::uft_search_stage_params>::process_bank_req 
(this=0x8a88f7c <BM_BaseTest::Iss+65564>, req_in=...,
    rst_out=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/include/ip/flex_hash_table/src/search_bank.h:324
#7  0x082d952d in 
FLEX_HASH_TABLE::search_stage<TD3::uft_search_stage_params>::process_req 
(this=0x8a78f60 <BM_BaseTest::Iss>, req=..., rst=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/include/ip/flex_hash_table/src/search_stage.h:307
#8  0x0833f085 in TD3::fb_uft_ss::process_req (
    this=0x8a78f60 <BM_BaseTest::Iss>, req=..., rst=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/ip/flex_hash_table/src/trident3/fb_uft_ss.cc:32
#9  0x082e34b7 in FLEX_HASH_TABLE::search_stages::process_search_req (
    this=0x8c16918, req=..., rst=...)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/include/ip/flex_hash_table/src/search_stages.h:176
#10 0x0833554c in 
FLEX_HASH_TABLE::flex_hash_table<TD3::fb_l3_search::l3_ht_params>::process_table_req(FLEX_HASH_TABLE::REQ_BUS&,
 FLEX_HASH_TABLE::RST_BUS&) ()
#11 0x08332de3 in 
FLEX_HASH_TABLE::flex_hash_table<TD3::fb_l3_search::l3_ht_params>::hash_table_lookup(SchanMsg&,
 FLEX_HASH_TABLE::flex_hash_table_width_t) ()
#12 0x0833127f in TD3::fb_l3_search::table_lookup (
    this=0x8ab9000 <BM_BaseTest::l3_search>, smsg=..., table_type=3284)
    at 
/projects/ntsw-arch3/AV/users/runipg/rg_arch2/arch/ip/flex_hash_table/src/trident3/fb_l3_search.cc:310

I looked through the object files using "nm" and the executable using 
"readelf". These symbols are listed as weak symbols.

% readelf -t --wide --symbols test_flex_ht.linux | grep l3_search | grep 
hash_table_lookup
43328: 08332ca8   810 FUNC    WEAK   DEFAULT   12 
_ZN15FLEX_HASH_TABLE15flex_hash_tableIN3TD312fb_l3_search12l3_ht_paramsEE17hash_table_lookupER8SchanMsgNS_23flex_hash_table_width_tE
Just FYI, the object itself lives in a static global store.


Thanks for looking into it!

----
Runip

_______________________________________________
bug-gdb mailing list
bug-gdb@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-gdb

Reply via email to