Re: gdb symbol problem

Jie Zhang
2009-12-28T06:44:36Z

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