how to debug gdb?

Alexander Tormasov a.tormasov at innopolis.ru
Thu Apr 8 19:42:58 CEST 2021


I have an application which run somehow normally.

I try to run it via gdb, using the following run file attached below (which works in the past).

And now I have a problem with quota (see log below), after this message it just hangs, and my attempts to update figures in run file lead to nothing, same err.

I found that in general it try to upgrade session quota as a result of rpc call return, but why?
what particular parameter responsible for it?

How I can find the reason? e.g. print current cap used/etc?

Booting from Hard Disk...
Boot failed: could not read the boot disk

Booting from DVD/CD...
Bender: Hello World. NOVA'

NOVA Microhypervisor v8-98b501b (x86_64): Apr  7 2021 23:34:52 [gcc 8.3.0] [MBI2]

[ 0] TSC:2011222 kHz BUS:1007275 kHz (measured)
[ 0] CORE:0:0:0 6:f:b:0 [0] Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
[ 1] CORE:1:0:0 6:f:b:0 [0] Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz

Hypervisor NOVA (API v8)
core     image  [0000000000100000,0000000000cef000)
binaries region [000000000029d000,0000000000cef000) free for reuse
detected physical memory: 0x0000000000000000 - size: 0x000000000009fc00
use      physical memory: 0x0000000000000000 - size: 0x000000000009f000
detected physical memory: 0x0000000000100000 - size: 0x00000000242df000
use      physical memory: 0x0000000000100000 - size: 0x00000000242df000
reserved memory: 0x237ee000 - size: 0xbf02f0 type=-2
reserved memory: 0x9fc00 - size: 0x400 type=2
reserved memory: 0xf0000 - size: 0x10000 type=2
reserved memory: 0x243df000 - size: 0x21000 type=2
reserved memory: 0xb0000000 - size: 0x10000000 type=2
reserved memory: 0xfed1c000 - size: 0x4000 type=2
reserved memory: 0xfffc0000 - size: 0x40000 type=2
reserved memory: 0xfd000000 - size: 0x300000 type=-5
reserved memory: 0x1000000 - size: 0x800000 type=-1
reserved memory: 0x1800000 - size: 0x1c00000 type=-1
reserved memory: 0x243e2152 - size: 0x0 type=-3
Hypervisor reports 2x1 CPUs
Warning: CPU has no invariant TSC.
mapping: affinity space -> kernel cpu id - package:core:thread
 remap (0x0) -> 0 - 0:0:0) boot cpu
 remap (1x0) -> 1 - 1:0:0)
ROM modules:
 ROM: [000000002398c000,000000002398c5e1) config
 ROM: [000000000000f000,0000000000013000) core_log
 ROM: [00000000242f5000,00000000243b88e0) gdb_monitor
 ROM: [00000000243b9000,00000000243dd0c8) gdbserver_platform.lib.so
 ROM: [000000002398d000,00000000239ed940) init
 ROM: [0000000023a0d000,0000000023b0b3a8) ld.lib.so
 ROM: [0000000023b0c000,0000000023ce88e8) libc.lib.so
 ROM: [0000000023ce9000,0000000023d23d40) libm.lib.so
 ROM: [00000000242b4000,00000000242d4a20) pc_uart_drv
 ROM: [000000000000d000,000000000000e000) platform_info
 ROM: [0000000023d24000,0000000023d34fb0) posix.lib.so
 ROM: [0000000023d35000,0000000023eea148) stdcxx.lib.so
 ROM: [0000000023f87000,00000000242b3ac0) test-go
 ROM: [00000000239ee000,0000000023a0c240) timer
 ROM: [0000000023eeb000,0000000023f86628) vfs.lib.so
 ROM: [00000000242d5000,00000000242f4b18) vfs_pipe.lib.so

36M kernel memory

Genode 20.11-203-g9c8a05c12 <local changes>
530 MiB RAM and 63253 caps assigned to init
[init]   0x1000000 .. 0x10ffffff: linker area
[init]   0x40000000 .. 0x4fffffff: stack area
[init]   0x30000 .. 0x161fff: ld.lib.so
[init] parent provides
[init]   service "ROM"
[init]   service "LOG"
[init]   service "RM"
[init]   service "CPU"
[init]   service "PD"
[init]   service "IRQ"
[init]   service "IO_MEM"
[init]   service "IO_PORT"
[init] child "timer"
[init]   RAM quota:  1800K
[init]   cap quota:  66
[init]   ELF binary: timer
[init]   priority:   0
[init]   provides service Timer
[init] child "pc_uart_drv"
[init]   RAM quota:  1800K
[init]   cap quota:  66
[init]   ELF binary: pc_uart_drv
[init]   priority:   0
[init]   provides service Uart
[init]   provides service Terminal
[init] child "gdb_monitor"
[init]   RAM quota:  255752K
[init]   cap quota:  466
[init]   ELF binary: gdb_monitor
[init]   priority:   0
[init]   provides service test-go
[init -> timer]   0x1000000 .. 0x10ffffff: linker area
[init -> gdb_monitor]   0x1000000 .. 0x10ffffff: linker area
[init -> pc_uart_drv] --- UART driver started ---
[init -> timer]   0x40000000 .. 0x4fffffff: stack area
[init -> timer]   0x30000 .. 0x161fff: ld.lib.so
[init] child "pc_uart_drv" announces service "Uart"
[init] child "pc_uart_drv" announces service "Terminal"
[init] child "timer" announces service "Timer"
[init -> gdb_monitor]   0x40000000 .. 0x4fffffff: stack area
[init -> gdb_monitor]   0x30000 .. 0x161fff: ld.lib.so
[init -> gdb_monitor]   0x10c7000 .. 0x10e9fff: gdbserver_platform.lib.so
[init -> gdb_monitor]   0x10e0c000 .. 0x10ffffff: libc.lib.so
[init -> gdb_monitor]   0x10d70000 .. 0x10e0bfff: vfs.lib.so
[init -> gdb_monitor]   0x10d36000 .. 0x10d6ffff: libm.lib.so
[init -> gdb_monitor]   0x10ea000 .. 0x12a1fff: stdcxx.lib.so
[init -> pc_uart_drv] open IRQ 3
[init -> pc_uart_drv]
[init -> pc_uart_drv] Warning: baud_rate 0 not supported, set to default
[init -> pc_uart_drv]
[init -> gdb_monitor]   0x10d0f000 .. 0x10d2dfff: vfs_pipe.lib.so

…
[init -> gdb_monitor] Warning: unsupported ioctl (request=0x40047477)
[init -> gdb_monitor] Warning: unsupported ioctl (request=0x80047476)
[init -> gdb_monitor] Process target created; pid = 1
[init -> gdb_monitor] Remote debugging using /dev/terminal
[init -> gdb_monitor] Error: fcntl(): command 6 not supported - vfs
…

[init -> gdb_monitor] Warning: Pd_session::transfer_quota not implemented
[init -> gdb_monitor] upgrading quota donation for PD session (0 bytes, 4 caps)
[init] child "gdb_monitor" requests resources: ram_quota=0, cap_quota=4

run file:
<config verbose="yes" ld_verbose="yes">
    <parent-provides>
        <service name="ROM" />
        <service name="LOG" />
        <service name="RM" />
        <service name="CPU" />
        <service name="PD" />
        <service name="IRQ" />
        <service name="IO_MEM" />
        <service name="IO_PORT" />
    </parent-provides>
    <default-route>
        <any-service> <parent/> <any-child/> </any-service>
    </default-route>
    <default caps="250" />
    <start name="timer" caps="100">
        <resource name="RAM" quantum="2M"/>
        <provides> <service name="Timer"/> </provides>
    </start>
    <start name="pc_uart_drv" caps="100">
        <resource name="RAM" quantum="2M" />
        <provides>
            <service name="Uart"/>
            <service name="Terminal"/>
        </provides>
        <config>
            <policy label_prefix="gdb_monitor" uart="1" />
        </config>
    </start>
    <start name="gdb_monitor" caps="500">
        <resource name="RAM" quantum="250M" />
        <provides> <service name="test-go" /> </provides>
        <config verbose="yes" ld_verbose="yes">
            <target name="test-go" >
                <config verbose="yes" ld_verbose="yes">
                    <vfs> <dir name="dev"> <log /> </dir>
                        <dir name="proc">
                            <dir name="self">
                                <rom name="exe" label="test-go"/>
                            </dir>
                        </dir>
                    </vfs>
                    <libc stdout="/dev/log" stderr="/dev/log" />
                </config>
            </target>
            <preserve name="RAM" quantum="50M" />
            <vfs>
                <dir name="dev"> <log/> <terminal/> </dir>
                <dir name="pipe"> <pipe/> </dir>
            </vfs>
            <libc stdout="/dev/log" stderr="/dev/log" pipe="/pipe"/>
        </config>
    </start>
</config>



More information about the users mailing list