L4Sys: termination shortcuts
Add two new breakpoints to L4Sys experiment that allow detecting that execution terminated with an error: vga_console_blink() is called by the kernel if JDB was entered (meaning we are hanging, e.g., due to an assertion); also longjmp() is only used by PF handling code after no valid page fault handling could be performed Change-Id: Ice61039c4bd07815a316bbc0bdb39f3483d9a1da
This commit is contained in:
@ -46,13 +46,22 @@ function BuildNRun {
|
||||
# backup experiment config
|
||||
cp $CFG $BAK
|
||||
|
||||
blink_addr=$(nm -C fiasco.image| grep blink | cut -d\ -f 1)
|
||||
longjmp_addr=$(nm -C fiasco.image| grep longjmp | cut -d\ -f 1)
|
||||
|
||||
#echo -e "\033[35;1m[$(date)] ================== Step 0: Getting CR3 =================\033[0m"
|
||||
#cat $BAK | sed -e 's/PREPARATION_STEP.*/PREPARATION_STEP 4/' >$CFG
|
||||
#buildfail
|
||||
#cr3=`$FAIL_CMD -f bochsrc-bd 2>/dev/null | grep CR3 | sed -e 's/ //g' | cut -d\= -f 2`
|
||||
#echo \#defne L4SYS_ADDRESS_SPACE 0x$cr3
|
||||
#cat $BAK | sed -e "s/L4SYS_ADDRESS_SPACE .*/L4SYS_ADDRESS_SPACE 0x$cr3/" >$CFG
|
||||
#mv $CFG $BAK
|
||||
|
||||
mv $CFG $BAK
|
||||
|
||||
cat $BAK | sed -e "s/L4SYS_BREAK_BLINK .*/L4SYS_BREAK_BLINK 0x$blink_addr/" >$CFG
|
||||
mv $CFG $BAK
|
||||
cat $BAK | sed -e "s/L4SYS_BREAK_LONGJMP .*/L4SYS_BREAK_LONGJMP 0x$longjmp_addr/" >$CFG
|
||||
mv $CFG $BAK
|
||||
|
||||
echo -e "\033[35;1m[$(date)] ================== Step 1: Generating Snapshot =================\033[0m"
|
||||
cat $BAK | sed -e 's/PREPARATION_STEP.*/PREPARATION_STEP 1/' >$CFG
|
||||
|
||||
Reference in New Issue
Block a user