Updated Spanish translation
[anjuta-git-plugin.git] / plugins / gdb / gdbmi-test.c
blob31db761dea982200641e18b43dfda8a835f3445a
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 /*
3 * gdbmi-test.c
4 * Copyright (C) Naba Kumar 2005 <naba@gnome.org>
5 *
6 * gdbmi-test.c is free software.
7 *
8 * You may redistribute it and/or modify it under the terms of the
9 * GNU General Public License, as published by the Free Software
10 * Foundation; either version 2, or (at your option) any later version.
12 * main.c is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 * See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with main.c. See the file "COPYING". If not,
19 * write to: The Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
24 /* MI parser */
25 #include <stdio.h>
26 #include <glib.h>
27 #include <gtk/gtk.h>
29 #include "gdbmi.h"
30 #include "debugger.h"
32 static gchar *gdb_test_line =
33 "^done,BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"3\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08050f5d\",func=\"main\",file=\"main.c\",line=\"122\",times=\"1\"},bkpt={number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x0096fbae\",func=\"anjuta_plugin_activate\",file=\"anjuta-plugin.c\",line=\"395\",times=\"1\"}]}";
35 #if 0
36 static void
37 output_callback (Debugger *debugger, DebuggerOutputType type,
38 const gchar *data, gpointer user_data)
40 printf ("%s", data);
43 static void
44 output_parser (Debugger* debugger, const GDBMIValue *mi_result,
45 const GList* cli_result, gpointer data, gpointer extra_data)
47 gdbmi_value_dump (mi_result, 0);
50 static void
51 on_location_changed (Debugger* debugger, const gchar *file, gint line,
52 gchar *addr, gpointer data)
54 printf ("Location changed %s:%d\n", file, line);
57 static void
58 on_program_running (Debugger* debugger, gpointer data)
62 static void
63 on_program_exited (Debugger* debugger, const GDBMIValue *value,
64 gpointer data)
68 static void
69 on_program_stopped (Debugger* debugger, const GDBMIValue *value,
70 gpointer data)
74 static void
75 on_entry_activate (GtkEntry *entry, Debugger *debugger)
77 debugger_command (debugger, gtk_entry_get_text (entry),
78 FALSE, output_parser, NULL);
80 #endif
82 int
83 main(int argc, char **argv)
85 GDBMIValue *val;
86 gchar *ptr;
87 /* Debugger *debugger; */
88 /* GtkWidget *win, *entry; */
90 printf("Test GDB MI interface.\n");
91 ptr = gdb_test_line;
92 val = gdbmi_value_parse (ptr);
93 if (val)
95 printf ("GDB MI parse test successful:\n");
96 printf ("Data ==>\n");
97 gdbmi_value_dump (val, 0);
99 else
101 printf ("GDB MI parse test failed\n");
103 printf ("Testing debugger\n");
104 gtk_init (&argc, &argv);
106 #if 0
107 debugger = debugger_new_with_program (NULL, NULL, output_callback, NULL,
108 "./gdbmi-test", TRUE);
110 g_signal_connect (debugger, "location-changed",
111 G_CALLBACK (on_location_changed), NULL);
112 g_signal_connect (debugger, "program-running",
113 G_CALLBACK (on_program_running), NULL);
114 g_signal_connect (debugger, "program-exited",
115 G_CALLBACK (on_program_exited), NULL);
116 g_signal_connect (debugger, "program-stopped",
117 G_CALLBACK (on_program_stopped), NULL);
119 win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
120 entry = gtk_entry_new ();
121 gtk_container_add (GTK_CONTAINER (win), entry);
122 g_signal_connect (entry, "activate",
123 G_CALLBACK (on_entry_activate),
124 debugger);
125 gtk_widget_show_all (win);
126 gtk_main();
127 #endif
128 return (0);