Mercurial > hg > Members > kono > nitros9-code
annotate scripts/os9.gdb @ 3047:a951ab0b3003
level1 6309: Switch to native mode early in rel.asm
Otherwise it will crash in the first F$Link call.
author | Robert Gault <robert.gault@att.net> |
---|---|
date | Sat, 24 Jan 2015 23:15:55 +0100 |
parents | e3e858889ab6 |
children | 11d87afc644a |
rev | line source |
---|---|
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
1 # gdb scripts for NitrOS-9 (or OS-9) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
2 # Copyright 2014 Tormod Volden |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
3 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
4 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
5 define hook-stop |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
6 printf "S=%04x X=%04x Y=%04x U=%04x A=%02x B=%02x CC=%02x PC=%04x ", $s, $x, $y, $u, $a, $b, $cc , $pc |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
7 os9_mwhere |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
8 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
9 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
10 document hook-stop |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
11 Pretty-print of registers on every halt, |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
12 and updates external source code window. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
13 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
14 |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
15 define os9_mname |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
16 set $mname = (char*)$arg0 + *((int*)$arg0 + 2) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
17 while 1 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
18 if (*$mname < 0x80) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
19 printf "%c", *$mname |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
20 else |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
21 printf "%c", *$mname-0x80 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
22 loop_break |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
23 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
24 set $mname += 1 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
25 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
26 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
27 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
28 document os9_mname |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
29 Print name of module at given address |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
30 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
31 |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
32 define os9_mident |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
33 set $m = (int*)$arg0 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
34 set $msize = *($m + 1) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
35 set $mtype = *((char*) $m + 6) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
36 set $mexec = *(int*)((char*) $m + 9) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
37 printf "%04x %4x %2X ", $m, $msize, $mtype |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
38 os9_mname $m |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
39 if ($mtype & 0xf) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
40 printf "\t[exec %04x] ", (char*)$m + $mexec |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
41 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
42 printf "\n" |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
43 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
44 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
45 document os9_mident |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
46 Print details of module at given address. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
47 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
48 |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
49 define os9_mdir |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
50 printf "addr size ty name\n" |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
51 set $mt = 0x300 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
52 while ($mt < 0x400) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
53 if ((int*)*$mt) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
54 os9_mident (int*)*$mt |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
55 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
56 set $mt += 4 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
57 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
58 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
59 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
60 document os9_mdir |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
61 List all modules registered in module directory. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
62 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
63 |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
64 define os9_mwhich |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
65 set $pc_reg = $arg0 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
66 set $mt = 0x300 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
67 while ($mt < 0x400) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
68 if ((int*)*$mt) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
69 set $mstart = (int*)*$mt |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
70 set $mend = (char*)$mstart + *($mstart + 1) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
71 if ($pc_reg >= $mstart && $pc_reg < $mend) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
72 loop_break |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
73 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
74 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
75 set $mt += 4 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
76 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
77 if ($mt == 0x400) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
78 set $mstart = 0 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
79 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
80 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
81 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
82 document os9_mwhich |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
83 (internal) Finds module at given address, sets $mstart quietly. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
84 end |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
85 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
86 define os9_mwhere |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
87 if ($argc == 1) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
88 set $pc_reg = $arg0 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
89 else |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
90 set $pc_reg = $pc |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
91 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
92 os9_mwhich $pc_reg |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
93 if ($mstart) |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
94 printf "inside " |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
95 os9_mname $mstart |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
96 printf "\n" |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
97 eval "!gvim --remote %02X%02X%02X.crc && gvim --remote-send \":set cursorline<CR>\" && gvim --remote-send \"/^%04X<CR>\"", *((char*)$mend-3), *((char*)$mend-2), *((char*)$mend-1), (char*)$pc_reg - (char*)$mstart |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
98 else |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
99 printf "no module\n" |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
100 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
101 end |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
102 |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
103 document os9_mwhere |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
104 Look up source code line for given address. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
105 Requires assembly list files named by CRC in current directory |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
106 and "gvim" to display listing and highlight line. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
107 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
108 |
2955
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
109 define b9 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
110 os9_mwhich $pc |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
111 eval "hbreak *0x%x", (int)$mstart + $arg0 |
a0b770fab355
Add scripts/os9.gdb and list2crc.pl for gdb debugging
Tormod Volden <debian.tormod@gmail.com>
parents:
diff
changeset
|
112 end |
3046
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
113 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
114 document b9 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
115 Set breakpoint in current module, at given offset. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
116 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
117 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
118 define ss |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
119 set $steps = 0 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
120 if (*$pc == 0x103f) |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
121 set $steps = 3 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
122 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
123 if (*(char*)$pc == 0x8d) |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
124 set $steps = 2 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
125 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
126 if (*(char*)$pc == 0x17) |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
127 set $steps = 3 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
128 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
129 if ($steps != 0) |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
130 thbreak *($pc + $steps) |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
131 cont |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
132 else |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
133 stepi |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
134 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
135 end |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
136 |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
137 document ss |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
138 Single step, but skips OS-9 SWI, bsr and lbsr. |
e3e858889ab6
scripts/os9.gdb: Add "smart" single step command
Tormod Volden <debian.tormod@gmail.com>
parents:
2955
diff
changeset
|
139 end |