All of lore.kernel.org
 help / color / mirror / Atom feed
* [uml-devel] How to properly load debug symbols for module and set breakpoint
@ 2016-07-06 11:31 Mark Kica
  2016-07-11 22:16 ` Richard Weinberger
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Kica @ 2016-07-06 11:31 UTC (permalink / raw)
  To: user-mode-linux-devel


[-- Attachment #1.1: Type: text/plain, Size: 2646 bytes --]

I have build custom 64bit UML Linux kernel with TUN/TAP kernel module
(tun.ko) and then I have installed it on small root filesystem with busybox
. These module and kernel seems to work and I would like to make simple
changes in TUN module and measure it's performance .

So I have tried to follow guide from
http://user-mode-linux.sourceforge.net/hacking.html which explains how to
attach gdb to UML and set breakpoint for module init function .

(gdb) p modules
$1 = {next = 0x6385cf38, prev = 0x6385cf38}

(gdb) p *((struct module *)0x6385cf30)
$2 = {state = MODULE_STATE_LIVE, list = {next = 0x6036aee0, prev =
0x6036aee0}, name = "tun", '\000' <repeats 52 times>, mkobj = {kobj =
{name = 0x62e95b00 "tun", entry = {next = 0x62c30440, prev =
0x62c30148}, parent = 0x62c30450,
kset = 0x62c30440, ktype = 0x603694d0, sd = 0x62dd6fa0, kref =
{refcount = {counter = 3}}, state_initialized = 1, state_in_sysfs = 1,
state_add_uevent_sent = 1, state_remove_uevent_sent = 0,
uevent_suppress = 0},
mod = 0x6385cf30, drivers_dir = 0x0, mp = 0x0}, modinfo_attrs =
0x62ea0400, version = 0x0, srcversion = 0x0, holders_dir = 0x62da7400,
syms = 0x0, crcs = 0x0, num_syms = 0, kp = 0x0, num_kp = 0,
num_gpl_syms = 1,
gpl_syms = 0x6385c260, gpl_crcs = 0x0, gpl_future_syms = 0x0,
gpl_future_crcs = 0x0, num_gpl_future_syms = 0, num_exentries = 0,
extable = 0x0, init = 0x63860000, module_init = 0x0, module_core =
0x6385a000, init_size = 0,
core_size = 13990, init_text_size = 0, core_text_size = 8244,
init_ro_size = 127, core_ro_size = 11432, arch = {<No data fields>},
taints = 0, num_bugs = 0, bug_list = {next = 0x60376a40, prev =
0x60376a40}, bug_table = 0x0,
symtab = 0x6385d120, core_symtab = 0x6385d120, num_symtab = 37,
core_num_syms = 37, strtab = 0x6385d498 "", core_strtab = 0x6385d498
"", sect_attrs = 0x62c52000, notes_attrs = 0x62e98240, args =
0x62e95b20 " ", source_list = {
next = 0x6385d0e0, prev = 0x6385d0e0}, target_list = {next =
0x6385d0f0, prev = 0x6385d0f0}, waiter = 0x62ea10c0, exit =
0x6385a101, refptr = 0x62176ca0}

(gdb) add-symbol-file
/home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko 0x6385a000
add symbol table from file
"/home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko" at
.text_addr = 0x6385a000
(y or n)
Please answer y or n.
(y or n) y
Reading symbols from
/home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko...done.

(gdb) p tun_init
$3 = {int (void)} 0x24 <tun_init>


(gdb) break tun_init
Cannot access memory at address 0x24



I don't understand why tun_init is located at 0x24 and not at 0x6385a000 ?
Can somebody point what I am doing wrong and how to load debug symbols and
set breakpoint ?

[-- Attachment #1.2: Type: text/html, Size: 2958 bytes --]

[-- Attachment #2: Type: text/plain, Size: 387 bytes --]

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape

[-- Attachment #3: Type: text/plain, Size: 194 bytes --]

_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

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

* Re: [uml-devel] How to properly load debug symbols for module and set breakpoint
  2016-07-06 11:31 [uml-devel] How to properly load debug symbols for module and set breakpoint Mark Kica
@ 2016-07-11 22:16 ` Richard Weinberger
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Weinberger @ 2016-07-11 22:16 UTC (permalink / raw)
  To: Mark Kica; +Cc: user-mode-linux-devel

On Wed, Jul 6, 2016 at 1:31 PM, Mark Kica <mark.kica@gmail.com> wrote:
> I have build custom 64bit UML Linux kernel with TUN/TAP kernel module
> (tun.ko) and then I have installed it on small root filesystem with busybox
> . These module and kernel seems to work and I would like to make simple
> changes in TUN module and measure it's performance .
>
> So I have tried to follow guide from
> http://user-mode-linux.sourceforge.net/hacking.html which explains how to
> attach gdb to UML and set breakpoint for module init function .
>
> (gdb) p modules
> $1 = {next = 0x6385cf38, prev = 0x6385cf38}
>
> (gdb) p *((struct module *)0x6385cf30)
> $2 = {state = MODULE_STATE_LIVE, list = {next = 0x6036aee0, prev =
> 0x6036aee0}, name = "tun", '\000' <repeats 52 times>, mkobj = {kobj = {name
> = 0x62e95b00 "tun", entry = {next = 0x62c30440, prev = 0x62c30148}, parent =
> 0x62c30450,
> kset = 0x62c30440, ktype = 0x603694d0, sd = 0x62dd6fa0, kref = {refcount =
> {counter = 3}}, state_initialized = 1, state_in_sysfs = 1,
> state_add_uevent_sent = 1, state_remove_uevent_sent = 0, uevent_suppress =
> 0},
> mod = 0x6385cf30, drivers_dir = 0x0, mp = 0x0}, modinfo_attrs = 0x62ea0400,
> version = 0x0, srcversion = 0x0, holders_dir = 0x62da7400, syms = 0x0, crcs
> = 0x0, num_syms = 0, kp = 0x0, num_kp = 0, num_gpl_syms = 1,
> gpl_syms = 0x6385c260, gpl_crcs = 0x0, gpl_future_syms = 0x0,
> gpl_future_crcs = 0x0, num_gpl_future_syms = 0, num_exentries = 0, extable =
> 0x0, init = 0x63860000, module_init = 0x0, module_core = 0x6385a000,
> init_size = 0,
> core_size = 13990, init_text_size = 0, core_text_size = 8244, init_ro_size =
> 127, core_ro_size = 11432, arch = {<No data fields>}, taints = 0, num_bugs =
> 0, bug_list = {next = 0x60376a40, prev = 0x60376a40}, bug_table = 0x0,
> symtab = 0x6385d120, core_symtab = 0x6385d120, num_symtab = 37,
> core_num_syms = 37, strtab = 0x6385d498 "", core_strtab = 0x6385d498 "",
> sect_attrs = 0x62c52000, notes_attrs = 0x62e98240, args = 0x62e95b20 " ",
> source_list = {
> next = 0x6385d0e0, prev = 0x6385d0e0}, target_list = {next = 0x6385d0f0,
> prev = 0x6385d0f0}, waiter = 0x62ea10c0, exit = 0x6385a101, refptr =
> 0x62176ca0}
>
> (gdb) add-symbol-file
> /home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko 0x6385a000
> add symbol table from file
> "/home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko" at
> .text_addr = 0x6385a000
> (y or n)
> Please answer y or n.
> (y or n) y
> Reading symbols from
> /home/mark/playground/linux-2.6.39.3/drivers/net/tun.ko...done.

Try extracting the addresses from /sys/module/tun/sections/

> (gdb) p tun_init
> $3 = {int (void)} 0x24 <tun_init>
>
>
> (gdb) break tun_init
> Cannot access memory at address 0x24
>
>
>
> I don't understand why tun_init is located at 0x24 and not at 0x6385a000 ?
> Can somebody point what I am doing wrong and how to load debug symbols and
> set breakpoint ?
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> _______________________________________________
> User-mode-linux-devel mailing list
> User-mode-linux-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
>



-- 
Thanks,
//richard

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel


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

end of thread, other threads:[~2016-07-11 22:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-06 11:31 [uml-devel] How to properly load debug symbols for module and set breakpoint Mark Kica
2016-07-11 22:16 ` Richard Weinberger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.