Symbols & Debugging
Debug symbols, objdump usage, and kernel debugging for NØNOS.
Build Artifacts
Release Build
target/
├── x86_64-nonos/release/
│ └── nonos_kernel # 221 KB, stripped
├── x86_64-unknown-uefi/release/
│ ├── nonos_boot.efi # 300 KB, UEFI bootloader
│ └── nonos_boot.pdb # 92 KB, debug symbols
└── esp/
└── EFI/
├── Boot/BOOTX64.EFI # Bootloader copy
└── nonos/kernel.bin # Kernel copyDebug Build
make debug
# or
cargo build # (without --release)Debug builds include full symbols and are larger.
Using objdump
View Kernel Sections
Expected output:
Disassemble Entry Point
View Symbols
View All Symbols
Key Symbols
kernel_main
Kernel entry point
__bss_start
BSS section start
__bss_end
BSS section end
__nonos_manifest_start
Manifest section start
__nonos_manifest_end
Manifest section end
__nonos_signature_start
Signature start (64 bytes)
__nonos_signature_end
Signature end
__stack_bottom
Stack bottom
__stack_top
Stack top
GDB Debugging
Start Debug Session
Common GDB Commands
Debug Build with Symbols
For better debugging, use debug build:
Serial Output
Enable Serial Debugging
Serial output appears in terminal. Useful for:
Boot messages
Kernel panics
Debug print statements
Serial Port Configuration
Port
COM1 (0x3F8)
Baud
115200
Data bits
8
Parity
None
Stop bits
1
Kernel Panic Information
On panic, NØNOS prints:
Panic message
Source file and line
Stack trace (if available)
Register dump
Example:
Inspecting the Manifest
Inspecting the Signature
Verifying Kernel Hash
Memory Debugging
View Page Tables
In GDB:
Check Memory Mapping
Performance Profiling
Boot Timing
Serial output includes timing:
Instruction Counting
In QEMU:
Common Issues
No Symbols in Release Build
Release builds strip symbols. Use debug build:
GDB Won't Connect
GDB Won't ConnectEnsure QEMU started with
-s -SCheck port 1234 is free
Try
localhost:1234instead of:1234
Kernel Doesn't Boot
Kernel Doesn't BootUse serial mode:
make run-serialCheck for panic messages
Verify signature with objdump
Last updated
Was this helpful?


