gdb symbol problem

Jie Zhang jie.zhang@analog.com
Mon Dec 28 06:44:00 GMT 2009


On 12/28/2009 01:09 PM, Hushan Jia wrote:
> On Mon, Dec 28, 2009 at 12:21 PM, Jie Zhang<jie.zhang@analog.com>  wrote:
>> On 12/28/2009 12:14 PM, Hushan Jia wrote:
>>>
>>> On Mon, Dec 28, 2009 at 10:38 AM, Jie Zhang<jie.zhang@analog.com>    wrote:
>>>>
>>>> On 12/27/2009 11:45 AM, Hushan Jia wrote:
>>>>>
>>>>> On Sun, Dec 27, 2009 at 11:36 AM, Paul Pluzhnikov
>>>>> <ppluzhnikov@google.com>      wrote:
>>>>>>
>>>>>> On Sat, Dec 26, 2009 at 6:16 PM, Hushan Jia<hushan.jia@gmail.com>
>>>>>>   wrote:
>>>>>>
>>>>>>> I invoke gdb like this:
>>>>>>>
>>>>>>> [hushan@hushan-t linux-2.6.31.3]$ gdb ./vmlinux
>>>>>>
>>>>>> Oh, you are not debugging a regular application. You probably should
>>>>>> have mentioned that in your initial message.
>>>>>
>>>>> Sorry for forget the important information.
>>>>>
>>>> What's the output of "readelf -S vmlinux"?
>>>
>>> Hi, The output is:
>>>
>>> # readelf -S vmlinux
>>> There are 77 section headers, starting at offset 0x3b569cc:
>>>
>>> Section Headers:
>>>    [Nr] Name              Type            Addr     Off    Size   ES Flg Lk
>>> Inf Al
>>>    [ 0]                   NULL            00000000 000000 000000 00      0
>>>    0  0
>>>    [ 1] .text.head        PROGBITS        c1000000 001000 0000a9 00  AX  0
>>>    0  4
>>>    [ 2] .rel.text.head    REL             00000000 3b575d4 000070 08
>>>   75   1  4
>>>    [ 3] .text             PROGBITS        c10000c0 0010c0 291284 00  AX  0
>>>    0 32
>>
>> It seems the machine was not executing code of your vmlinux. The code in
>> your vmlinux starts from 0xc1000000. But when you connected with GDB, the
>> stopped PC was 0xc0467118, which was just ahead of code sections of your
>> vmlinux. Is it possbile the linux kernel running in your qemu was not the
>> one you told GDB?
>
> Hi, I compiled the kernel on the host machine, and then copy kernel
> and modules files to the qemu virtual machine, they are the same
> files.

OK. Then you need to find out what's at the address 0xc0467118. GDB 
cannot show you the symbol and source line which it doesn't know. 
/proc/kallsyms might be helpful if that address is in kernel.

> and the kgdb seems does not work, if I run c in gdb, then I cannot
> interrupt it using CTRL-C, and the breakpoints are never hit.
> The attached file is the kernel config, and kernel is
> linux-2.6.31.3.tar.bz2, downloaded from kernel.org.
>
I have no idea about kgdb.


Jie



More information about the Gdb mailing list