test: finalisation d'un déboguer efficace
This commit is contained in:
parent
a00965b7a3
commit
0c6b0635ab
|
@ -1,5 +1,5 @@
|
||||||
target remote localhost:1234
|
target remote localhost:1234
|
||||||
set disassembly-flavor intel
|
set disassembly-flavor att
|
||||||
set architecture i8086
|
set architecture i8086
|
||||||
break *0x7c00
|
break *0x7c00
|
||||||
cont
|
cont
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/sh
|
||||||
|
session="debug"
|
||||||
|
tmux start-server
|
||||||
|
tmux new-session -d -s $session -n gdb
|
||||||
|
|
||||||
|
tmux splitw -h -p 90
|
||||||
|
tmux splitw -t 0 -v -p 50
|
||||||
|
tmux splitw -t 2 -h -p 45
|
||||||
|
tmux splitw -v -p 50
|
||||||
|
tmux splitw -v -p 50
|
||||||
|
|
||||||
|
tmux send-keys -t 5 "gdb --init-command=./debug/gdbinit -x $1" Enter
|
||||||
|
tmux send-keys -t 3 "telnet 127.0.0.1 6666" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard stack -output /dev/pts/6" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard threads -output /dev/null" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard assembly -output /dev/pts/5" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard registers -output /dev/pts/3" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard expressions -output /dev/pts/8" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard memory -output /dev/pts/8" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard source -output /dev/pts/5" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard history -output /dev/pts/10" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard threads -output /dev/null" Enter
|
||||||
|
tmux send-keys -t 5 "dashboard stack -output /dev/pts/6" Enter
|
||||||
|
tmux new-window -t $session:1 -n scratch
|
||||||
|
tmux select-window -t $session:0
|
||||||
|
tmux attach-session -t $session
|
|
@ -937,7 +937,7 @@ class Source(Dashboard.Module):
|
||||||
return {
|
return {
|
||||||
'context': {
|
'context': {
|
||||||
'doc': 'Number of context lines.',
|
'doc': 'Number of context lines.',
|
||||||
'default': 5,
|
'default': 12,
|
||||||
'type': int,
|
'type': int,
|
||||||
'check': check_ge_zero
|
'check': check_ge_zero
|
||||||
},
|
},
|
||||||
|
@ -1075,7 +1075,7 @@ instructions constituting the current statement are marked, if available."""
|
||||||
return {
|
return {
|
||||||
'context': {
|
'context': {
|
||||||
'doc': 'Number of context instructions.',
|
'doc': 'Number of context instructions.',
|
||||||
'default': 3,
|
'default': 10,
|
||||||
'type': int,
|
'type': int,
|
||||||
'check': check_ge_zero
|
'check': check_ge_zero
|
||||||
},
|
},
|
|
@ -1,7 +0,0 @@
|
||||||
target remote localhost:1234
|
|
||||||
set disassembly-flavor intel
|
|
||||||
set architecture i8086
|
|
||||||
symbol-file ./system/realmode/setup.sym
|
|
||||||
break *0x90000
|
|
||||||
break *0x90200
|
|
||||||
cont
|
|
|
@ -1,6 +0,0 @@
|
||||||
target remote localhost:1234
|
|
||||||
set disassembly-flavor intel
|
|
||||||
set architecture i8086
|
|
||||||
break *0x800
|
|
||||||
cont
|
|
||||||
clear *0x800
|
|
|
@ -1,7 +1,7 @@
|
||||||
target remote localhost:1234
|
target remote localhost:1234
|
||||||
set disassembly-flavor intel
|
set disassembly-flavor intel
|
||||||
set architecture i386
|
set architecture i386
|
||||||
symbol-file ./system/system.sys
|
symbol-file ./system/realmode/setup.sym
|
||||||
break system.c:50
|
break system.c:50
|
||||||
cont
|
cont
|
||||||
clear system.c:50
|
clear system.c:50
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -8,8 +8,23 @@ echo ${lo}
|
||||||
losetup -P ${lo} harddisk.img
|
losetup -P ${lo} harddisk.img
|
||||||
mkfs.ext2 ${lo}p1
|
mkfs.ext2 ${lo}p1
|
||||||
mount ${lo}p1 /mnt
|
mount ${lo}p1 /mnt
|
||||||
grub-install --no-floppy --install-modules="biosdisk part_msdos ext2 configfile normal multiboot2 video video_colors video_cirrus video_fb" --boot-directory=/mnt/boot ${lo} --target=i386-pc
|
grub-install --no-floppy --install-modules="biosdisk part_msdos ext2 configfile normal linux vbe png gfxmenu video video_colors video_cirrus video_fb" --boot-directory=/mnt/boot ${lo} --target=i386-pc
|
||||||
echo -en "set timeout=4\nset default=0\nmenuentry "cos2000" {\nset root=(hd0,1)\nmultiboot2 /boot/system.sys\nboot\n}" > /mnt/boot/grub/grub.cfg
|
echo -en "\
|
||||||
|
insmod ext2
|
||||||
|
insmod biosdisk
|
||||||
|
insmod part_msdos
|
||||||
|
insmod linux
|
||||||
|
insmod vbe
|
||||||
|
insmod gfxterm
|
||||||
|
insmod png
|
||||||
|
insmod font
|
||||||
|
set timeout=4\n\
|
||||||
|
set default=0\n\
|
||||||
|
menuentry "cos2000" {\n\
|
||||||
|
set root=(hd0,1)\n\
|
||||||
|
linux /boot/system.sys\n
|
||||||
|
boot\n\
|
||||||
|
}" > /mnt/boot/grub/grub.cfg
|
||||||
umount /mnt
|
umount /mnt
|
||||||
losetup -d ${lo}
|
losetup -d ${lo}
|
||||||
#xz -c harddisk.img > harddisk.img.xz
|
#xz -c harddisk.img > harddisk.img.xz
|
||||||
|
|
65
makefile
65
makefile
|
@ -1,3 +1,11 @@
|
||||||
|
DEBUG=exec gnome-terminal --geometry=120x40+1+1 -x ./debug/debug.sh
|
||||||
|
REMOVE=rm -f
|
||||||
|
INSTALL=sudo apt-get install
|
||||||
|
COPY=cp
|
||||||
|
EMULATOR=bochs -f
|
||||||
|
GIT=git status
|
||||||
|
MAKECALL=python makesyscall.py
|
||||||
|
|
||||||
all: tools programs bits32 bits64 harddisk uefi
|
all: tools programs bits32 bits64 harddisk uefi
|
||||||
sync
|
sync
|
||||||
|
|
||||||
|
@ -17,7 +25,7 @@ tools/build:
|
||||||
syscall: clean remakeapi all
|
syscall: clean remakeapi all
|
||||||
|
|
||||||
remakeapi:
|
remakeapi:
|
||||||
python makesyscall.py
|
$(MAKECALL)
|
||||||
|
|
||||||
programs: programs/test lib/TEST/test.c lib/TEST/test2.c
|
programs: programs/test lib/TEST/test.c lib/TEST/test2.c
|
||||||
|
|
||||||
|
@ -35,8 +43,7 @@ harddisk: final/harddisk.img.final
|
||||||
uefi: final/harddiskuefi.img.final
|
uefi: final/harddiskuefi.img.final
|
||||||
|
|
||||||
install:
|
install:
|
||||||
(sudo apt-get install gcc qemu fusefat fuseext2 gdb ovmf bsdmainutils tar bsdmainutils indent binutils bochs bochs-x bochsbios dos2unix)
|
$(INSTALL) gcc qemu fusefat fuseext2 gdb ovmf bsdmainutils tar bsdmainutils indent binutils bochs bochs-x bochsbios dos2unix gnome-terminal
|
||||||
cp ./debug/.gdbinit ~/
|
|
||||||
|
|
||||||
togit:
|
togit:
|
||||||
make -C system togit
|
make -C system togit
|
||||||
|
@ -44,11 +51,11 @@ togit:
|
||||||
make -C final togit
|
make -C final togit
|
||||||
make -C programs togit
|
make -C programs togit
|
||||||
make -C tools togit
|
make -C tools togit
|
||||||
git status
|
$(GIT)
|
||||||
sync
|
sync
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f .gdb_history
|
$(RM) -f .gdb_history
|
||||||
make -C system clean
|
make -C system clean
|
||||||
make -C lib clean
|
make -C lib clean
|
||||||
make -C final clean
|
make -C final clean
|
||||||
|
@ -71,7 +78,8 @@ indent:
|
||||||
sync
|
sync
|
||||||
|
|
||||||
backup: clean
|
backup: clean
|
||||||
(cd .. ; tar cf - Source\ C | gzip -f - > backup.tar.gz)
|
cd ..
|
||||||
|
tar cf - Source\ C | gzip -f - > backup.tar.gz
|
||||||
|
|
||||||
test: programs bits32 harddisk qemu
|
test: programs bits32 harddisk qemu
|
||||||
|
|
||||||
|
@ -84,7 +92,7 @@ retest64: littleclean test64
|
||||||
testbochs: programs bits32 harddisk bochs-debug
|
testbochs: programs bits32 harddisk bochs-debug
|
||||||
|
|
||||||
view:
|
view:
|
||||||
(hexdump -C ./final/harddisk.img.final|head -c10000)
|
hexdump -C ./final/harddisk.img.final|head -c10000
|
||||||
|
|
||||||
debug: debug-system
|
debug: debug-system
|
||||||
|
|
||||||
|
@ -97,37 +105,38 @@ redebug64: littleclean debug-system64
|
||||||
kernel: debug-kernel
|
kernel: debug-kernel
|
||||||
|
|
||||||
debug-boot: programs bits32 harddisk qemu-debug
|
debug-boot: programs bits32 harddisk qemu-debug
|
||||||
(sleep 2;gdb -x ./debug/boot.txt)
|
sleep 2
|
||||||
|
$(DEBUG) ./debug/boot.txt
|
||||||
debug-loader: programs bits32 harddisk qemu-debug
|
|
||||||
(sleep 2;gdb -x ./debug/loader.txt)
|
|
||||||
|
|
||||||
debug-system: programs bits32 harddisk qemu-debug
|
debug-system: programs bits32 harddisk qemu-debug
|
||||||
(sleep 2;gdb -x ./debug/system.txt)
|
sleep 2
|
||||||
|
$(DEBUG) ./debug/system.txt
|
||||||
|
|
||||||
debug-system64: programs bits64 uefi qemu-debug64
|
debug-system64: programs bits64 uefi qemu-debug64
|
||||||
(sleep 2;gdb -x ./debug/system.txt)
|
sleep 2
|
||||||
|
$(DEBUG) ./debug/system.txt
|
||||||
|
|
||||||
debug-kernel: all qemu-kernel
|
bochs-debug: killer
|
||||||
(sleep 2;gdb -x ./debug/kernel.txt)
|
$(EMULATOR) ./debug/config.bochs
|
||||||
|
|
||||||
bochs-debug:
|
killer:
|
||||||
(killall bochs-debug;bochs -f ./debug/config.bochs)
|
killall bochs-debug || true
|
||||||
|
killall qemu-system-x86_64 || true
|
||||||
|
killall qemu-system-i386 || true
|
||||||
|
killall gnome-terminal-server || true
|
||||||
|
tmux kill-session -t debug || true
|
||||||
|
|
||||||
qemu-kernel:
|
qemu-debug: killer
|
||||||
(killall qemu-system-i386;qemu-system-i386 -m 1G -kernel ./system/system.sys -s -S &)
|
qemu-system-i386 -monitor telnet:127.0.0.1:6666,server,nowait -m 1G -drive format=raw,file=./final/harddisk.img.final -s -S &
|
||||||
|
|
||||||
qemu-debug:
|
qemu-debug64: killer
|
||||||
(killall qemu-system-i386;qemu-system-i386 -m 1G -drive format=raw,file=./final/harddisk.img.final -s -S &)
|
qemu-system-x86_64 -monitor telnet:127.0.0.1:6666,server,nowait -m 5G -drive format=raw,file=./final/harddiskuefi.img.final --bios /usr/share/qemu/OVMF.fd -s -S &
|
||||||
|
|
||||||
qemu-debug64:
|
qemu: killer
|
||||||
(killall qemu-system-x86_64;qemu-system-x86_64 -m 5G -drive format=raw,file=./final/harddiskuefi.img.final --bios /usr/share/qemu/OVMF.fd -s -S &)
|
qemu-system-i386 -m 1G -drive format=raw,file=./final/harddisk.img.final --enable-kvm -cpu host -s &
|
||||||
|
|
||||||
qemu:
|
qemu64: killer
|
||||||
(killall qemu-system-i386;qemu-system-i386 -m 1G -drive format=raw,file=./final/harddisk.img.final --enable-kvm -cpu host -s &)
|
qemu-system-x86_64 -m 5G -drive format=raw,file=./final/harddiskuefi.img.final --bios /usr/share/qemu/OVMF.fd --enable-kvm -cpu host -s &
|
||||||
|
|
||||||
qemu64:
|
|
||||||
(killall qemu-system-x86_64;qemu-system-x86_64 -m 5G -drive format=raw,file=./final/harddiskuefi.img.final --bios /usr/share/qemu/OVMF.fd --enable-kvm -cpu host -s &)
|
|
||||||
|
|
||||||
system/system.sys:
|
system/system.sys:
|
||||||
make -C system VESA=$(VESA)
|
make -C system VESA=$(VESA)
|
||||||
|
|
Loading…
Reference in New Issue