kdserver

Updated: April 19, 2023

QVM guest dump/kernel dump server

Syntax:

kdserver [-v] [kdumper_file]

Runs on:

QNX Neutrino

Option:

-v
Be verbose.

Description:

The kdserver utility can run on your development host system. You can use it with GDB to parse and examine a core dump file.

In a QNX hypervisor system, if you specify the dump option in a VM's configuration (*.qvmconf file), you can send a SIGUSR2 signal to the qvm process instance and have it produce a dump file for the guest (*.gcore) hosted in that qvm process instance (see the QNX Hypervisor user documentation).

You can then copy the file to your development host system, and use GDB along with kdserver to examine the ELF64 dump file for your guest:

  1. On your development host, start GDB:
    ntoarch-gdb symfile
    where arch is the architecture, either ntoaarch64-gdb for AArch64, or ntox86_64-gdb for x86-64, and symfile is procnto-* for QNX Neutrino or vmlinux-* or vmlinuz-* for Linux or Android.
    For example, the following command starts GDB on an x86-64 Linux system:
    $ ntox86_64-gdb vmlinuz-3.13.0-77-generic
    GNU gdb (GDB) 8.2.1 [qnx710 r1426] (STABLE)
    [...]
    This GDB was configured as "--host=x86_64-pc-linux-gnu --target=x86_64-pc-nto-qnx7.1.0".
    [...]
    BFD: /home/mschuster/tmp/qvm_linux_guest/linux-3.14.54/vmlinuz-3.13.0-77-generic: \
     warning: ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .bss
    Reading symbols from vmlinux-3.13.0-77-generic...(no debugging symbols found)...done.
    
    Note the name of the binary, vmlinuz-* (not vmlinux-*); the 'z' denotes a compressed Linux kernel, which gdb uncompresses.
  2. At the GDB prompt, point kdserver to your guest dump file:
    gdb>
    target remote | kdserver dumpfile
    where dumpfile is the path on your development host to the guest dump file you want to examine.

For more information about using GDB with QNX Neutrino, see the entry for gdb. For more information about GDB, see https://www.gnu.org/software/gdb/documentation/.