From 50f25337c239b6d852c0200fc7db72ef3f3e489a Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Thu, 30 Nov 2023 09:57:00 +0100 Subject: Add bp.sh script Used to put breakpoints. --- acme.inc | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bp.sh | 27 +++++++++++++++++++++++++++ tag.sh | 6 ++++-- 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 acme.inc create mode 100755 bp.sh diff --git a/acme.inc b/acme.inc new file mode 100644 index 0000000..6b71535 --- /dev/null +++ b/acme.inc @@ -0,0 +1,58 @@ +fn_set_tag() +{ + echo 'cleartag' | 9p write acme/$winid/ctl + echo -n " $@" | 9p write acme/$winid/tag +# echo 'clean' | 9p write acme/$winid/ctl +} + +fn_append_tag() +{ + echo -n "$1" | 9p write acme/$winid/tag +} + +fn_get_tag() +{ + 9p read acme/$winid/tag +} + +fn_write_click_event() +{ + local eventType=$1 offset=$2 end=$3 + +# echo "M$eventType$offset $end" + echo "M$eventType$offset $end" | 9p write "acme/$winid/event" +} + +fn_exec_cmd_tag() +{ + local cmd_size=$(echo -n "$1" | wc -c | awk '{print $1}') + local start=$(echo `fn_get_tag` | sed -E 's/( Snarf )[^\|]*/\1/g' | grep -aob "$1" | sed 's/:.*//g') + if [ -z $start ]; then + fn_append_tag " ($1)" + start=$(echo `fn_get_tag` | sed -E 's/( Snarf )[^\|]*/\1/g' | grep -aob "$1" | sed 's/:.*//g') + fi + local end=$(expr $start + $cmd_size) + + fn_write_click_event x $start $end +} + +fn_win_tag() +{ + 9p read "acme/$winid/tag" | sed -E 's/( Snarf ).*/\1/' +} + +fn_win_tag_size() +{ + fn_win_tag | wc -c | awk '{print $1}' +} + +fn_user_tag() +{ + 9p read "acme/$winid/tag" | cut -d'|' -f2 | xargs +} + +fn_user_tag_pos() +{ + local size=$(fn_win_tag_size) + expr $size + 1 +} diff --git a/bp.sh b/bp.sh new file mode 100755 index 0000000..70d0078 --- /dev/null +++ b/bp.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +DIR=$(dirname `realpath $0`) + +. $DIR/acme.inc + +fn_exec_cmd_tag "Edit =" +WIN_ERR_ID=$(9p read acme/index | awk '{print $6" "$1}' | grep -E '^\+Errors' | awk '{print $2}') + +file=$(9p read acme/$WIN_ERR_ID/body | tail -1) +extension=$(echo $file | sed -E 's/.*\.(.*):[0-9]*$/\1/g') + +if [ $extension = 'java' ]; then + CUR_DIR=`pwd` + START_DIR=$CUR_DIR + while [ $CUR_DIR != '/' ] && [ ! -f pom.xml ]; do + cd .. + CUR_DIR=$(pwd) + done + dir_name=${CUR_DIR##*/} + + BREAKPOINT=$(echo $file | sed -E "s|.*$dir_name/src/.*/java/(.*)\.java|\1|g" | tr '/' '.') + echo 'stop at '$BREAKPOINT + echo 'stop at '$BREAKPOINT >> jdb.lines + + cd $START_DIR +fi diff --git a/tag.sh b/tag.sh index 4107521..a42b0bc 100755 --- a/tag.sh +++ b/tag.sh @@ -2,9 +2,11 @@ CMD=`echo $0 | sed 's/.*\///g'` -TAG="Get $CMD |c+ |c- |latin" +EDIT_TAG='(Edit =)' +TAG="Get $CMD |c+ |c- |latin >ffunc m80 m120 >java-import |java-package >find-file >find-class |qentity |lower |upper >who-implement-me" +DEBUG_TAG='bp' # Clear the tag before adding the new one echo cleartag | 9p write acme/$winid/ctl -printf "\n$TAG\nEdit" | 9p write acme/$winid/tag +printf "\n$EDIT_TAG\n$TAG\n$DEBUG_TAG\nEdit" | 9p write acme/$winid/tag -- cgit v1.2.3