summaryrefslogtreecommitdiffstats
path: root/c/src/librdbg/src/awk.svc
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-12-03 23:54:14 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-12-03 23:54:14 +0000
commit4721cf1ecb949b37c98b6fce79163541711de2e5 (patch)
treea89f2bef604b2ddf22b262fe6115d9f75c952781 /c/src/librdbg/src/awk.svc
parentRemoved spaces. (diff)
downloadrtems-4721cf1ecb949b37c98b6fce79163541711de2e5.tar.bz2
Patch from Emmanuel Raguet <raguet@crf.canon.fr> to add remote debug server
and RPC support to RTEMS. Thanks. :) Email follows: Hello, For Xmas, here is the Remote Debugger on RTEMS ! Here are 2 patches for the Remote Debugger on RTEMS for pc386 from Linux host : - one for RTEMS it self, - one for GDB-4.17. 1/ RTEMS patch -------------- This patch adds 2 libraries : - a simplified SUN RPC library - the Remote Debugger library The configuration command is the following : ../rtems4/configure --target=i386-rtemself --enable-rtemsbsp=pc386 --enable-rdbg The SUN RPC library is built only if networking is set. The RDBG library is built if networking and enable-rdbg are set. The function used to initialize the debugger is : rtems_rdbg_initialize (); A special function has been created to force a task to be in a "debug" state : enterRdbg(). The use of this function is not mandatory. 2/ GDB-4.17 patch ----------------- This patch create a new RTEMS target for GDB-4.17. The configuration command is the following : ./configure --enable-shared --target=i386RTEMS To connect to a target, use : target rtems [your_site_address] Then, attach the target using : attach 1 And... Debug ;) You can obtain the original GDB-4.17 on ftp://ftp.debian.org/debian/dists/stable/main/source/devel/gdb_4.17.orig.tar.gz This has been tested from a Debian 2.0.1 linux host.
Diffstat (limited to 'c/src/librdbg/src/awk.svc')
-rw-r--r--c/src/librdbg/src/awk.svc65
1 files changed, 65 insertions, 0 deletions
diff --git a/c/src/librdbg/src/awk.svc b/c/src/librdbg/src/awk.svc
new file mode 100644
index 0000000000..79e24a9d90
--- /dev/null
+++ b/c/src/librdbg/src/awk.svc
@@ -0,0 +1,65 @@
+#########################################################################
+#
+# Component: RDBG
+# Module: awk.svc
+#
+# Synopsis: AWK script which transforms the server skeleton produced
+# by rpcgen(1) into something suitable for RDB servers.
+#
+#########################################################################
+
+BEGIN {
+ headerstarted = 0
+ withinproc = 0
+ brack = 0
+}
+
+$1 ~ /^\/\*HEADER_START\*\/$/ {
+ headerstarted = 1
+ printf("#include <rpc/types.h>\n");
+ printf("#include <rpc/rpc.h>\n");
+ printf("#include <stdio.h>\n");
+ printf("#include <stdlib.h>\n");
+ printf("#include <string.h>\n");
+ printf("#include <bsp.h>\n");
+ printf("#include <rdbg/servrpc.h>\n");
+ printf("#include <rdbg/%s>\n", THEPROG);
+ printf("#define fprintf(a,b) printf(b)\n");
+ printf("#define msgout(a) printf(a)\n")
+ printf("#define _msgout(a) fprintf(stderr,a)\n");
+}
+
+$1 ~ /^\/\*HEADER_END\*\/$/ {
+ headerstarted = 0
+}
+
+{
+ if (headerstarted == 1) {
+ print $0
+ } else if ($1 ~ /.*_2.*/) {
+ withinproc = 1
+ printf("void\n");
+ print $0
+ } else if (withinproc == 1) {
+ if ($1 == "switch") {
+ print "\tDPRINTF ((\"remotedeb_2: %s (%d)\\n\", "
+ print "\t\t(unsigned) rqstp->rq_proc < "
+ print "\t\t(unsigned) (sizeof names / sizeof names[0]) ?"
+ print "\t\tnames [rqstp->rq_proc] : \"???\", "
+ print "\t\t(int) rqstp->rq_proc));\n"
+ }
+ for (i = 1; i <= NF; i++) {
+ if ($i == "{") {
+ brack++;
+ } else if ($i == "}") {
+ brack--;
+ if (brack == 0) {
+ withinproc = 0;
+ }
+ }
+ }
+ if ($1 != "_rpcsvcdirty" ) {
+ print $0
+ }
+ }
+}