Re: GDB does not stop at assembly code address

Yao Qi
2016-10-18T19:19:40Z

On Tue, Oct 18, 2016 at 12:53 PM, <deffo@gmx.de> wrote:
> Here's the output:
>
> (gdb) b startup_32
> Breakpoint 1 at 0xc1000000: file arch/x86/kernel/head_32.S, line 97.
> (gdb) print startup_32
> $1 = {<text variable, no debug info>} 0xc1000000 <startup_32>
> (gdb) info breakpoints
> Num Type Disp Enb Address What
> 1 breakpoint keep y 0xc1000000 arch/x86/kernel/head_32.S:97
>
> (gdb) b start_kernel
> Breakpoint 1 at 0xc1be3755: file init/main.c, line 480.
> (gdb) print start_kernel
> $1 = {void (void)} 0xc1be3755 <start_kernel>
> (gdb) info breakpoints
> Num Type Disp Enb Address What
> 1 breakpoint keep y 0xc1be3755 in start_kernel at init/main.c:480
>

Looks breakpoint is set on the right place. Nothing wrong there.

> I guess the "no debug info" would be the explanation, but why is that? The address is listed as a FUNC in readelf -Ws vmlinux, thus it should be correct. What do I have to do?
>

"no debug info" is about startup_32, which is written in assembly without debug
information. It is nothing wrong there. I have no idea why breakpoint on
startup_32 is not hit.

--
Yao (齐尧)