mirror of
https://git.nju.edu.cn/oslab2023/oslab.git
synced 2024-06-13 04:44:31 +08:00
34 lines
963 B
Plaintext
34 lines
963 B
Plaintext
set $lastcs = -1
|
|
|
|
define hook-stop
|
|
# There doesn't seem to be a good way to detect if we're in 16- or
|
|
# 32-bit mode, but we always run with CS == 8 in 32-bit mode.
|
|
if $cs == 8 || $cs == 27
|
|
if $lastcs != 8 && $lastcs != 27
|
|
set architecture i386
|
|
end
|
|
x/i $pc
|
|
else
|
|
if $lastcs == -1 || $lastcs == 8 || $lastcs == 27
|
|
set architecture i8086
|
|
end
|
|
# Translate the segment:offset into a physical address
|
|
printf "[%4x:%4x] ", $cs, $eip
|
|
x/i $cs*16+$eip
|
|
end
|
|
set $lastcs = $cs
|
|
end
|
|
|
|
set architecture i8086
|
|
set tdesc filename ./.gdbconf/target.xml
|
|
echo + target remote localhost:1234\n
|
|
target remote localhost:1234
|
|
|
|
|
|
# If this fails, it's probably because your GDB doesn't support ELF.
|
|
# Look at the tools page at
|
|
# http://pdos.csail.mit.edu/6.828/2009/tools.html
|
|
# for instructions on building GDB with ELF support.
|
|
echo + symbol-file build/kernel/kernel\n
|
|
symbol-file build/kernel/kernel
|