Difference between revisions of "Toro Kernel"
From Lazarus wiki
Jump to navigationJump to searchm |
|||
Line 1: | Line 1: | ||
A dedicated kernel for multi-threading applications | A dedicated kernel for multi-threading applications | ||
− | == | + | ==on Windows== |
+ | ===Building=== | ||
* you'll need to have cross-compile linux binary utils | * you'll need to have cross-compile linux binary utils | ||
+ | :those could be acquired from fpcup or fpcupdeluxe | ||
+ | * the project contain "build" utility complication as well. The utiltiy produces an image from the resulting .elf file | ||
+ | ===Running QEMU=== | ||
+ | * install QEmu for Windows | ||
+ | * run the system specifying the built image | ||
+ | qemu-system-x86_64 -hda HelloWorldMicroservice.img | ||
+ | * on start qemu can complain about unknown or raw format of ".img" file. | ||
+ | : One might find the script files to build the Qemu recognizable image file formats: BuildVHDX.cmd and/or BuildVMDK.cmd | ||
+ | |||
+ | ==Debugging== | ||
+ | * run QEmu with enabling gdb (-s) and also requesting the QEmu to halt until getting the "continue" signal from gdb (-S) | ||
+ | qemu-system-x86_64 -s -S -hda HelloWorldMicroservice.img | ||
+ | : The expected result is that Qemu window will halt with the message that "vga" system has not been initialized yet (and doing nothing) | ||
+ | : -s - configures the default remote GDB mode for the use of TCP socket for port 1234 | ||
+ | * run the debugger, and provide the previously complied binary file as its gdb target. (The file is needed to load debugging information) | ||
+ | gdb HelloWorldMicroservice | ||
+ | * after that run the remote target command | ||
+ | (gdb)> target remote localhost:1234 | ||
+ | :The command makes gdb connect to the specified address. In which case this would be Qemu running locally at port 1234. | ||
+ | * setup the debugging information (i.e. breakpoints, etc) | ||
+ | :The debugging information in the compiled binary contains the information necessary to work with binary during debugging. | ||
+ | * "continue" the process. | ||
+ | (gdb)> continue | ||
==See Also== | ==See Also== |
Revision as of 21:59, 23 August 2019
A dedicated kernel for multi-threading applications
on Windows
Building
- you'll need to have cross-compile linux binary utils
- those could be acquired from fpcup or fpcupdeluxe
- the project contain "build" utility complication as well. The utiltiy produces an image from the resulting .elf file
Running QEMU
- install QEmu for Windows
- run the system specifying the built image
qemu-system-x86_64 -hda HelloWorldMicroservice.img
- on start qemu can complain about unknown or raw format of ".img" file.
- One might find the script files to build the Qemu recognizable image file formats: BuildVHDX.cmd and/or BuildVMDK.cmd
Debugging
- run QEmu with enabling gdb (-s) and also requesting the QEmu to halt until getting the "continue" signal from gdb (-S)
qemu-system-x86_64 -s -S -hda HelloWorldMicroservice.img
- The expected result is that Qemu window will halt with the message that "vga" system has not been initialized yet (and doing nothing)
- -s - configures the default remote GDB mode for the use of TCP socket for port 1234
- run the debugger, and provide the previously complied binary file as its gdb target. (The file is needed to load debugging information)
gdb HelloWorldMicroservice
- after that run the remote target command
(gdb)> target remote localhost:1234
- The command makes gdb connect to the specified address. In which case this would be Qemu running locally at port 1234.
- setup the debugging information (i.e. breakpoints, etc)
- The debugging information in the compiled binary contains the information necessary to work with binary during debugging.
- "continue" the process.
(gdb)> continue
See Also
- https://github.com/torokernel/torokernel sourcecode
- https://torokernel.io the official website