Ensure functions start with clean CFA state.

.cfi_startproc doesn't reset CFA state and so delivering exceptions and the
like can leave the CFA with an incorrect offset. Reset the state in the
DEFINE_FUNCTION macro.
Also fix using test/run-test with --gdb for the target.

Change-Id: I4c03768e118ef1e06d34fedce856919e6ecba0c4
diff --git a/test/etc/push-and-run-test-jar b/test/etc/push-and-run-test-jar
index a218a42..2a2aa70 100755
--- a/test/etc/push-and-run-test-jar
+++ b/test/etc/push-and-run-test-jar
@@ -131,7 +131,7 @@
 
 if [ "$GDB" = "y" ]; then
     gdb="gdbserver :5039"
-    gdbargs="--args $exe"
+    gdbargs="$exe"
 fi
 
 if [ "$INTERPRETER" = "y" ]; then