kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* RE: Confused about how to apply add-symbol-file in gdb
@ 2022-07-18  8:56 Chan Kim
  0 siblings, 0 replies; 2+ messages in thread
From: Chan Kim @ 2022-07-18  8:56 UTC (permalink / raw)
  To: kernelnewbies


Hello,
I found from the manual,
(https://sourceware.org/gdb/onlinedocs/gdb/Files.html#:~:text=The%20add%2Dsy
mbol%2Dfile%20command,text%20section%20has%20been%20loaded.)
By giving "-o 0x10000" I can follow the kernel source in the virtual
address. (and follow sources after start_kernel)
Thank you.
Chan Kim

>-----Original Message-----
>From: Chan Kim <ckim@etri.re.kr>
>Sent: Monday, July 18, 2022 5:43 PM
>To: kernelnewbies@kernelnewbies.org
>Subject: Confused about how to apply add-symbol-file in gdb
>
>Hello all,
>
>I thought I know how to apply add-symbol-file command in gdb but now I'm
>confused.
>I'm using qemu to test booting linux using u-boot. (arm64) I've loaded u-
>boot at 0x4000000 and loaded linux Image (binary, not elf) at 0x80010000.
>The dtb is loaded at 0x80000000.
>(because qemu loads the dtb file at the first address of RAM (which is
>0x80000000) I moved kernel image to 0x80010000) After the PC jumps to
linux,
>I can follow the source while the PC value uses physical address.
>I think this is possible that I gave gdb this command.
>add-symbol-file vmlinux -s .head.text 0x80010000 -s .text 0x80020000 (using
>readelf -e vmlinux command, I can see the section offsets relative to the
>start of the Image file. The output starts like this.
>Section Headers:
>  [Nr] Name              Type             Address           Offset
>       Size              EntSize          Flags  Link  Info  Align
>  [ 0]                   NULL             0000000000000000  00000000
>       0000000000000000  0000000000000000           0     0     0
>  [ 1] .head.text        PROGBITS         ffffffc010000000  00010000
>       0000000000010000  0000000000000000  AX       0     0     65536
>  [ 2] .text             PROGBITS         ffffffc010010000  00020000
>       0000000000aa4dc8  0000000000000008  AX       0     0     2048
>  [ 3] .got.plt          PROGBITS         ffffffc010ab4dc8  00ac4dc8
>       0000000000000018  0000000000000008  WA       0     0     8
>  [ 4] .rodata           PROGBITS         ffffffc010ac0000  00ad0000
>       0000000000645018  0000000000000000  WA       0     0     4096
>  [ 5] .pci_fixup        PROGBITS         ffffffc011105020  01115020
>       00000000000025e0  0000000000000000   A       0     0     16
>  [ 6] __ksymtab         PROGBITS         ffffffc011107600  01117600
>       000000000000b3b8  0000000000000000   A       0     0     4
>  [ 7] __ksymtab_gpl     PROGBITS         ffffffc0111129b8  011229b8
>...
>
>Now, at the end of __primary_switch function, the PC value becomes virtual.
>But I can't follow kernel source from that point.
>Until now, I have placed kernel Image at 0x80000000 and dtb was at
>0x82800000 and just by giving "add-symbol-file vmlinux" again, there was no
>problem following the kernel source in virtual address.
>How should I give the add-symbol-file command when the Image is now at
>0x80010000??
>Any comment welcome.
>Thank you.
>
>Chan Kim





_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Confused about how to apply add-symbol-file in gdb
@ 2022-07-18  8:43 Chan Kim
  0 siblings, 0 replies; 2+ messages in thread
From: Chan Kim @ 2022-07-18  8:43 UTC (permalink / raw)
  To: kernelnewbies

Hello all,

I thought I know how to apply add-symbol-file command in gdb but now I'm
confused.
I'm using qemu to test booting linux using u-boot. (arm64)
I've loaded u-boot at 0x4000000 and loaded linux Image (binary, not elf) at
0x80010000. The dtb is loaded at 0x80000000.
(because qemu loads the dtb file at the first address of RAM (which is
0x80000000) I moved kernel image to 0x80010000)
After the PC jumps to linux, I can follow the source while the PC value uses
physical address.
I think this is possible that I gave gdb this command.
add-symbol-file vmlinux -s .head.text 0x80010000 -s .text 0x80020000
(using readelf -e vmlinux command, I can see the section offsets relative to
the start of the Image file. The output starts like this.
Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .head.text        PROGBITS         ffffffc010000000  00010000
       0000000000010000  0000000000000000  AX       0     0     65536
  [ 2] .text             PROGBITS         ffffffc010010000  00020000
       0000000000aa4dc8  0000000000000008  AX       0     0     2048
  [ 3] .got.plt          PROGBITS         ffffffc010ab4dc8  00ac4dc8
       0000000000000018  0000000000000008  WA       0     0     8
  [ 4] .rodata           PROGBITS         ffffffc010ac0000  00ad0000
       0000000000645018  0000000000000000  WA       0     0     4096
  [ 5] .pci_fixup        PROGBITS         ffffffc011105020  01115020
       00000000000025e0  0000000000000000   A       0     0     16
  [ 6] __ksymtab         PROGBITS         ffffffc011107600  01117600
       000000000000b3b8  0000000000000000   A       0     0     4
  [ 7] __ksymtab_gpl     PROGBITS         ffffffc0111129b8  011229b8
...

Now, at the end of __primary_switch function, the PC value becomes virtual.
But I can't follow kernel source from that point.
Until now, I have placed kernel Image at 0x80000000 and dtb was at
0x82800000 and just by giving "add-symbol-file vmlinux" again, there was no
problem following the kernel source in virtual address.
How should I give the add-symbol-file command when the Image is now at
0x80010000??
Any comment welcome.
Thank you.

Chan Kim





_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-07-18  8:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-18  8:56 Confused about how to apply add-symbol-file in gdb Chan Kim
  -- strict thread matches above, loose matches on Subject: below --
2022-07-18  8:43 Chan Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).