X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=debug.sh;h=5d630ee02aa8a8773545a93819744559e6f4a1af;hb=ef492db3b89ae7e0fe6317d3a1d0e727c28bf8ca;hp=b94d7daa2c70e7a6ffe4a920aae5f1210937414a;hpb=b0fb878e59a01c0a746b8740eb4f179dfe1efee9;p=rrq%2Frrqforth.git diff --git a/debug.sh b/debug.sh index b94d7da..5d630ee 100755 --- a/debug.sh +++ b/debug.sh @@ -10,21 +10,23 @@ NBR=$(wc -l < gdbinit) I=1 while [ $I -lt $NBR ] ; do echo disable $I ; I=$((I+1)) ; done >> gdbinit -RET=$(grep -w ret rrqforth.map | sed 's/ .*//') -echo "break *$RET" >> gdbinit +RET=( $(grep -w ret rrqforth.map | sed 's/ .*//') ) +echo "break *${RET[0]}" >> gdbinit # ;; rax = cfa of called word # ;; rsi = cell* of next forth word # ;; [$rsp] = from where the call was - cat <> gdbinit commands $((NBR+1)) print (void*) \$rsp -print (((char*)(*(((void**)\$rax)-2)))+32) print (void*) \$rsi -continue +print (char*)((*((void**)(*((void**)\$rsi)-16)))+32) end EOF +echo disable $NBR >> gdbinit +echo disable $((NBR+1)) >> gdbinit + + DS="$(grep "${PFX}DS_TOP:" rrqforth.map | sed 's/ .*//')" RS="$(grep "${PFX}RS_TOP:" rrqforth.map | sed 's/ .*//')" cat <> gdbinit