summaryrefslogtreecommitdiff
path: root/src/monkey/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/monkey/misc.c')
-rw-r--r--src/monkey/misc.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/monkey/misc.c b/src/monkey/misc.c
new file mode 100644
index 000000000..5440ab0f0
--- /dev/null
+++ b/src/monkey/misc.c
@@ -0,0 +1,118 @@
+/**[txh]********************************************************************
+
+ Copyright (c) 2004 by Salvador E. Tropea.
+ Covered by the GPL license.
+
+ Module: Miscellaneous commands.
+ Comments:
+ GDB/MI commands for the "Miscellaneous Commands" section.@p
+
+@<pre>
+gdb command: Implemented?
+
+-gdb-exit Yes
+-gdb-set Yes
+-gdb-show Yes
+-gdb-version Yes
+@</pre>
+
+GDB Bug workaround for "-gdb-show architecture": gdb 6.1 and olders doesn't
+report it in "value", but they give the output of "show architecture". In
+6.4 we observed that not even a clue is reported. So now we always use
+"show architecture".
+
+***************************************************************************/
+
+#include <string.h>
+#include "mi_gdb.h"
+
+/* Low level versions. */
+
+void mi_gdb_exit(mi_h *h)
+{
+ mi_send(h,"-gdb-exit\n");
+}
+
+void mi_gdb_version(mi_h *h)
+{
+ mi_send(h,"-gdb-version\n");
+}
+
+void mi_gdb_set(mi_h *h, const char *var, const char *val)
+{
+ mi_send(h,"-gdb-set %s %s\n",var,val);
+}
+
+void mi_gdb_show(mi_h *h, const char *var)
+{
+ if (strcmp(var,"architecture")==0)
+ mi_send(h,"show %s\n",var);
+ else
+ mi_send(h,"-gdb-show %s\n",var);
+}
+
+/* High level versions. */
+
+/**[txh]********************************************************************
+
+ Description:
+ Exit gdb killing the child is it is running.
+
+ Command: -gdb-exit
+
+***************************************************************************/
+
+void gmi_gdb_exit(mi_h *h)
+{
+ mi_gdb_exit(h);
+ mi_res_simple_exit(h);
+}
+
+/**[txh]********************************************************************
+
+ Description:
+ Send the version to the console.
+
+ Command: -gdb-version
+ Return: !=0 OK
+
+***************************************************************************/
+
+int gmi_gdb_version(mi_h *h)
+{
+ mi_gdb_version(h);
+ return mi_res_simple_done(h);
+}
+
+/**[txh]********************************************************************
+
+ Description:
+ Set a gdb variable.
+
+ Command: -gdb-set
+ Return: !=0 OK
+
+***************************************************************************/
+
+int gmi_gdb_set(mi_h *h, const char *var, const char *val)
+{
+ mi_gdb_set(h,var,val);
+ return mi_res_simple_done(h);
+}
+
+/**[txh]********************************************************************
+
+ Description:
+ Get a gdb variable.
+
+ Command: -gdb-show
+ Return: The current value of the variable or NULL on error.
+
+***************************************************************************/
+
+char *gmi_gdb_show(mi_h *h, const char *var)
+{
+ mi_gdb_show(h,var);
+ return mi_res_value(h);
+}
+