Re: gdb symbol problem

Hui Zhu
2009-12-28T07:37:08Z

Maybe your address is a part of a LKM.
If so, find it out with "cat /proc/modules", and use gdb cmd
"add-symbol-file module_dir_name address" add symbol message to gdb.

Hui

On Mon, Dec 28, 2009 at 14:38, Jie Zhang <jie.zhang@analog.com> wrote:
> 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
>