Re: gdb symbol problem

Hushan Jia
2009-12-28T10:28:14Z

On Mon, Dec 28, 2009 at 3:36 PM, Hui Zhu <teawater@gmail.com> wrote:
> 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
>>
>

Thanks for all your replies, the kgdb kernel cannot boot, maybe it is
a config problem.

--
Thanks & Regards,
Hushan Jia