Debugging with debug_qemu() in Scripts/run.sh
In the debug_qemu() function in Scripts/run.sh, the following line is executed:
echo "symbol-file $LEMOND/Kernel/build/kernel.sys" >> $(dirname $(readlink -f "$0"))/debug.gdb
This adds the following line to debug.gdb:
target remote localhost:1234
symbol-file /home/ayumi/LemonOS/Scripts/../Kernel/build/kernel.sys
However, there is no file with the above path.
So, I modified run.sh as follows:
echo "symbol-file $LEMOND/Build/sysroot/system/lemon/kernel.sys" >> $(dirname $(readlink -f "$0"))/debug.gdb
After making this change, when I added some breakpoints and typed c, something went wrong:
CPU does not support SSE4.2. LEMON OS requires x86_64-v2 support.
I then added -cpu host to the qemu-system-x86_64 command in run.sh as follows:
-qemu-system-x86_64 -cpu host
After this change, when I typed c in gdb, the OS ran fine, but I couldn’t set a breakpoint at entry. Although I could set breakpoints at other functions, when I typed c, I received the following warning:
Cannot access memory at address...
Debugging with
debug_qemu()inScripts/run.shIn the
debug_qemu()function inScripts/run.sh, the following line is executed:This adds the following line to debug.gdb:
However, there is no file with the above path.
So, I modified run.sh as follows:
After making this change, when I added some breakpoints and typed c, something went wrong:
I then added -cpu host to the qemu-system-x86_64 command in run.sh as follows:
After this change, when I typed c in gdb, the OS ran fine, but I couldn’t set a breakpoint at entry. Although I could set breakpoints at other functions, when I typed c, I received the following warning: