1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ 2 /* 3 * ianjuta-debugger.h -- Autogenerated from libanjuta.idl 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef _IANJUTA_DEBUGGER_H_ 21 #define _IANJUTA_DEBUGGER_H_ 22 23 #include <glib-object.h> 24 #include <libanjuta/interfaces/ianjuta-message-view.h> 25 #include <sys/types.h> 26 #include <gio/gio.h> 27 28 G_BEGIN_DECLS 29 30 #define IANJUTA_TYPE_DEBUGGER (ianjuta_debugger_get_type ()) 31 #define IANJUTA_DEBUGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IANJUTA_TYPE_DEBUGGER, IAnjutaDebugger)) 32 #define IANJUTA_IS_DEBUGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IANJUTA_TYPE_DEBUGGER)) 33 #define IANJUTA_DEBUGGER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), IANJUTA_TYPE_DEBUGGER, IAnjutaDebuggerIface)) 34 35 #define IANJUTA_TYPE_DEBUGGER_ERROR (ianjuta_debugger_error_get_type()) 36 #define IANJUTA_TYPE_DEBUGGER_OUTPUT_TYPE (ianjuta_debugger_output_type_get_type()) 37 #define IANJUTA_TYPE_DEBUGGER_STATE (ianjuta_debugger_state_get_type()) 38 39 #define IANJUTA_DEBUGGER_ERROR ianjuta_debugger_error_quark() 40 41 typedef struct _IAnjutaDebugger IAnjutaDebugger; 42 typedef struct _IAnjutaDebuggerIface IAnjutaDebuggerIface; 43 44 /* Types */ 45 /** 46 * IAnjutaDebuggerError: 47 * @IANJUTA_DEBUGGER_OK: No error 48 * @IANJUTA_DEBUGGER_NOT_READY: Debugger is not ready to execute the command 49 * @IANJUTA_DEBUGGER_NOT_RUNNING: Debugger is not is running state 50 * @IANJUTA_DEBUGGER_NOT_STOPPED: Debugger is not is stopped state 51 * @IANJUTA_DEBUGGER_NOT_LOADED: Debugger is not is loaded state 52 * @IANJUTA_DEBUGGER_NOT_STARTED: Debugger is not in started state 53 * @IANJUTA_DEBUGGER_NOT_CONNECTED: Debugger is not connected: 54 * @IANJUTA_DEBUGGER_NOT_IMPLEMENTED: Corresponding function is not implemented 55 * @IANJUTA_DEBUGGER_CANCEL: Operation has been cancelled 56 * @IANJUTA_DEBUGGER_UNABLE_TO_CREATE_VARIABLE: Debugger cannot create variable 57 * @IANJUTA_DEBUGGER_UNABLE_TO_ACCESS_MEMORY: Debugger cannot access memory 58 * @IANJUTA_DEBUGGER_UNABLE_TO_OPEN_FILE: Debugger cannot open file 59 * @IANJUTA_DEBUGGER_UNSUPPORTED_FILE_TYPE: Debugger cannot debug such file 60 * @IANJUTA_DEBUGGER_UNSUPPORTED_VERSION: Debugger is too old 61 * @IANJUTA_DEBUGGER_UNABLE_TO_FIND_DEBUGGER: Debugger cannot be found 62 * @IANJUTA_DEBUGGER_ALREADY_DONE: Command has already been executed 63 * @IANJUTA_DEBUGGER_PROGRAM_NOT_FOUND: Program cannot be found 64 * @IANJUTA_DEBUGGER_UNABLE_TO_CONNECT: Unable to connect to debugger 65 * @IANJUTA_DEBUGGER_UNKNOWN_ERROR: Unknown error 66 * @IANJUTA_DEBUGGER_OTHER_ERROR: other error 67 * 68 * This enumeration is used to defined the error returned by the debugger 69 * backend. 70 */ 71 typedef enum { 72 IANJUTA_DEBUGGER_OK = 0, 73 IANJUTA_DEBUGGER_NOT_READY, 74 IANJUTA_DEBUGGER_NOT_RUNNING, 75 IANJUTA_DEBUGGER_NOT_STOPPED, 76 IANJUTA_DEBUGGER_NOT_LOADED, 77 IANJUTA_DEBUGGER_NOT_STARTED, 78 IANJUTA_DEBUGGER_NOT_CONNECTED, 79 IANJUTA_DEBUGGER_NOT_IMPLEMENTED, 80 IANJUTA_DEBUGGER_CANCEL, 81 IANJUTA_DEBUGGER_UNABLE_TO_CREATE_VARIABLE, 82 IANJUTA_DEBUGGER_UNABLE_TO_ACCESS_MEMORY, 83 IANJUTA_DEBUGGER_UNABLE_TO_OPEN_FILE, 84 IANJUTA_DEBUGGER_UNSUPPORTED_FILE_TYPE, 85 IANJUTA_DEBUGGER_UNSUPPORTED_VERSION, 86 IANJUTA_DEBUGGER_UNABLE_TO_FIND_DEBUGGER, 87 IANJUTA_DEBUGGER_ALREADY_DONE, 88 IANJUTA_DEBUGGER_PROGRAM_NOT_FOUND, 89 IANJUTA_DEBUGGER_UNABLE_TO_CONNECT, 90 IANJUTA_DEBUGGER_UNKNOWN_ERROR, 91 IANJUTA_DEBUGGER_OTHER_ERROR 92 } IAnjutaDebuggerError; 93 94 /** 95 * IAnjutaDebuggerOutputType: 96 * @IANJUTA_DEBUGGER_OUTPUT: Output from debugger 97 * @IANJUTA_DEBUGGER_WARNING_OUTPUT: Warning from debugger 98 * @IANJUTA_DEBUGGER_ERROR_OUTPUT: Error from debugger 99 * @IANJUTA_DEBUGGER_INFO_OUTPUT: Additional message from debugger 100 * 101 * This enumeration is used to defined the kind of output in 102 * #IAnjutaDebuggerOutputCallback 103 */ 104 typedef enum { 105 IANJUTA_DEBUGGER_OUTPUT, 106 IANJUTA_DEBUGGER_WARNING_OUTPUT, 107 IANJUTA_DEBUGGER_ERROR_OUTPUT, 108 IANJUTA_DEBUGGER_INFO_OUTPUT 109 } IAnjutaDebuggerOutputType; 110 111 /** 112 * IAnjutaDebuggerState: 113 * @IANJUTA_DEBUGGER_BUSY: Debugger is executing a command, it can enter in another 114 * at the end of the command. 115 * @IANJUTA_DEBUGGER_STOPPED: Debugger is stopped. 116 * @IANJUTA_DEBUGGER_STARTED: Debugger is started but no program is loaded. 117 * @IANJUTA_DEBUGGER_PROGRAM_LOADED: Debugger is started and has a program loaded. 118 * @IANJUTA_DEBUGGER_PROGRAM_STOPPED: Debugger is started and has a program stopped. 119 * @IANJUTA_DEBUGGER_PROGRAM_RUNNING: Debugger is started and has a program running. 120 * 121 * This enumeration is used to defined the different state of the debugger. 122 */ 123 typedef enum { 124 IANJUTA_DEBUGGER_BUSY, 125 IANJUTA_DEBUGGER_STOPPED, 126 IANJUTA_DEBUGGER_STARTED, 127 IANJUTA_DEBUGGER_PROGRAM_LOADED, 128 IANJUTA_DEBUGGER_PROGRAM_STOPPED, 129 IANJUTA_DEBUGGER_PROGRAM_RUNNING 130 } IAnjutaDebuggerState; 131 132 /** 133 * IAnjutaDebuggerFrame: 134 * @thread: Thread identifier. 135 * @level: Level of the frame, 0 is the topmost one. 136 * @args: List of argument of the caller. 137 * @file: Source file name where is the program counter. 138 * @line: Line number in the file above. 139 * @function: Function name where is the program counter. 140 * @library: Library name where is the program counter. 141 * @address: Address of the program counter. 142 * 143 * This structure keeps all information about a stack frame. 144 */ 145 typedef struct _IAnjutaDebuggerFrame IAnjutaDebuggerFrame; 146 struct _IAnjutaDebuggerFrame { 147 gint thread; 148 guint level; 149 gchar *args; 150 gchar *file; 151 guint line; 152 gchar *function; 153 gchar *library; 154 gulong address; 155 }; 156 157 /** 158 * IAnjutaDebuggerCallback: 159 * @data: data 160 * @user_data: user data passed to the function 161 * @err: error 162 * 163 * This callback function is used only by #ianjuta_debugger_callback with a 164 * NULL data. 165 */ 166 typedef void (*IAnjutaDebuggerCallback) (const gpointer data, gpointer user_data, GError* err); 167 168 /** 169 * IAnjutaDebuggerGListCallback: 170 * @list: (element-type any): list of data 171 * @user_data: user data passed to the function 172 * @err: error 173 * 174 * This callback function is used by several debugger functions. Depending on 175 * the function, the kind of elements in the list is different. It is a string 176 * for #ianjuta_debugger_list_local or a #IAnjutaDebuggerFrame for 177 * #ianjuta_debugger_list_frame. 178 */ 179 typedef void (*IAnjutaDebuggerGListCallback) (const GList* list, gpointer user_data, GError* err); 180 181 /** 182 * IAnjutaDebuggerGCharCallback: 183 * @value: string 184 * @user_data: user data 185 * @err: error 186 * 187 * This callback function is used by several debugger functions. The data is 188 * a string 189 */ 190 typedef void (*IAnjutaDebuggerGCharCallback) (const gchar *value, gpointer user_data, GError* err); 191 192 /** 193 * IAnjutaDebuggerOutputCallback: 194 * @type: kind of output 195 * @output: string 196 * @user_data: user data 197 * 198 * This callback function is used only by #ianjuta_debugger_callback with a 199 * NULL data. 200 */ 201 typedef void (*IAnjutaDebuggerOutputCallback) (IAnjutaDebuggerOutputType type, const gchar *output, gpointer user_data); 202 203 204 205 struct _IAnjutaDebuggerIface { 206 GTypeInterface g_iface; 207 208 /* Signal */ 209 void (*debugger_ready) (IAnjutaDebugger *obj, IAnjutaDebuggerState state); 210 /* Signal */ 211 void (*debugger_started) (IAnjutaDebugger *obj); 212 /* Signal */ 213 void (*debugger_stopped) (IAnjutaDebugger *obj, GError *err); 214 /* Signal */ 215 void (*frame_changed) (IAnjutaDebugger *obj, guint frame, gint thread); 216 /* Signal */ 217 void (*program_exited) (IAnjutaDebugger *obj); 218 /* Signal */ 219 void (*program_loaded) (IAnjutaDebugger *obj); 220 /* Signal */ 221 void (*program_moved) (IAnjutaDebugger *obj, gint pid, gint tid, gulong address, const gchar* file, guint line); 222 /* Signal */ 223 void (*program_running) (IAnjutaDebugger *obj); 224 /* Signal */ 225 void (*program_stopped) (IAnjutaDebugger *obj); 226 /* Signal */ 227 void (*sharedlib_event) (IAnjutaDebugger *obj); 228 /* Signal */ 229 void (*signal_received) (IAnjutaDebugger *obj, const gchar* name, const gchar* description); 230 231 gboolean (*abort) (IAnjutaDebugger *obj, GError **err); 232 gboolean (*attach) (IAnjutaDebugger *obj, pid_t pid, const GList* source_search_directories, GError **err); 233 gboolean (*callback) (IAnjutaDebugger *obj, IAnjutaDebuggerCallback callback, gpointer user_data, GError **err); 234 gboolean (*connect) (IAnjutaDebugger *obj, const gchar *server, const gchar *args, gboolean terminal, gboolean stop, GError **err); 235 void (*disable_log) (IAnjutaDebugger *obj, GError **err); 236 gboolean (*dump_stack_trace) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 237 void (*enable_log) (IAnjutaDebugger *obj, IAnjutaMessageView *log, GError **err); 238 gboolean (*evaluate) (IAnjutaDebugger *obj, const gchar* name, const gchar* value, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 239 gboolean (*exit) (IAnjutaDebugger *obj, GError **err); 240 IAnjutaDebuggerState (*get_state) (IAnjutaDebugger *obj, GError **err); 241 gboolean (*handle_signal) (IAnjutaDebugger *obj, const gchar *name, gboolean stop, gboolean print, gboolean ignore, GError **err); 242 gboolean (*info_args) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 243 gboolean (*info_frame) (IAnjutaDebugger *obj, guint frame, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 244 gboolean (*info_program) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 245 gboolean (*info_sharedlib) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 246 gboolean (*info_signal) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 247 gboolean (*info_target) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 248 gboolean (*info_thread) (IAnjutaDebugger *obj, gint thread, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 249 gboolean (*info_udot) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 250 gboolean (*info_variables) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 251 gboolean (*inspect) (IAnjutaDebugger *obj, const gchar* name, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 252 gboolean (*interrupt) (IAnjutaDebugger *obj, GError **err); 253 gboolean (*list_argument) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 254 gboolean (*list_frame) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 255 gboolean (*list_local) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 256 gboolean (*list_thread) (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 257 gboolean (*load) (IAnjutaDebugger *obj, const gchar *file, const gchar *mime_type, const GList* source_search_directories, GError **err); 258 gboolean (*print) (IAnjutaDebugger *obj, const gchar *name, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 259 gboolean (*quit) (IAnjutaDebugger *obj, GError **err); 260 gboolean (*run) (IAnjutaDebugger *obj, GError **err); 261 gboolean (*run_from) (IAnjutaDebugger *obj, const gchar *file, gint line, GError **err); 262 gboolean (*run_to) (IAnjutaDebugger *obj, const gchar* file, gint line, GError **err); 263 gboolean (*send_command) (IAnjutaDebugger *obj, const gchar *command, GError **err); 264 gboolean (*set_environment) (IAnjutaDebugger *obj, gchar **env, GError **err); 265 gboolean (*set_frame) (IAnjutaDebugger *obj, guint frame, GError **err); 266 gboolean (*set_thread) (IAnjutaDebugger *obj, gint thread, GError **err); 267 gboolean (*set_working_directory) (IAnjutaDebugger *obj, const gchar *dir, GError **err); 268 gboolean (*start) (IAnjutaDebugger *obj, const gchar *args, gboolean terminal, gboolean stop, GError **err); 269 gboolean (*step_in) (IAnjutaDebugger *obj, GError **err); 270 gboolean (*step_out) (IAnjutaDebugger *obj, GError **err); 271 gboolean (*step_over) (IAnjutaDebugger *obj, GError **err); 272 gboolean (*unload) (IAnjutaDebugger *obj, GError **err); 273 274 }; 275 276 GType ianjuta_debugger_error_get_type (void); 277 GType ianjuta_debugger_output_type_get_type (void); 278 GType ianjuta_debugger_state_get_type (void); 279 280 GQuark ianjuta_debugger_error_quark (void); 281 GType ianjuta_debugger_get_type (void); 282 283 gboolean ianjuta_debugger_abort (IAnjutaDebugger *obj, GError **err); 284 285 gboolean ianjuta_debugger_attach (IAnjutaDebugger *obj, pid_t pid, const GList* source_search_directories, GError **err); 286 287 gboolean ianjuta_debugger_callback (IAnjutaDebugger *obj, IAnjutaDebuggerCallback callback, gpointer user_data, GError **err); 288 289 gboolean ianjuta_debugger_connect (IAnjutaDebugger *obj, const gchar *server, const gchar *args, gboolean terminal, gboolean stop, GError **err); 290 291 void ianjuta_debugger_disable_log (IAnjutaDebugger *obj, GError **err); 292 293 gboolean ianjuta_debugger_dump_stack_trace (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 294 295 void ianjuta_debugger_enable_log (IAnjutaDebugger *obj, IAnjutaMessageView *log, GError **err); 296 297 gboolean ianjuta_debugger_evaluate (IAnjutaDebugger *obj, const gchar* name, const gchar* value, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 298 299 gboolean ianjuta_debugger_exit (IAnjutaDebugger *obj, GError **err); 300 301 IAnjutaDebuggerState ianjuta_debugger_get_state (IAnjutaDebugger *obj, GError **err); 302 303 gboolean ianjuta_debugger_handle_signal (IAnjutaDebugger *obj, const gchar *name, gboolean stop, gboolean print, gboolean ignore, GError **err); 304 305 gboolean ianjuta_debugger_info_args (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 306 307 gboolean ianjuta_debugger_info_frame (IAnjutaDebugger *obj, guint frame, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 308 309 gboolean ianjuta_debugger_info_program (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 310 311 gboolean ianjuta_debugger_info_sharedlib (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 312 313 gboolean ianjuta_debugger_info_signal (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 314 315 gboolean ianjuta_debugger_info_target (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 316 317 gboolean ianjuta_debugger_info_thread (IAnjutaDebugger *obj, gint thread, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 318 319 gboolean ianjuta_debugger_info_udot (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 320 321 gboolean ianjuta_debugger_info_variables (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 322 323 gboolean ianjuta_debugger_inspect (IAnjutaDebugger *obj, const gchar* name, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 324 325 gboolean ianjuta_debugger_interrupt (IAnjutaDebugger *obj, GError **err); 326 327 gboolean ianjuta_debugger_list_argument (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 328 329 gboolean ianjuta_debugger_list_frame (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 330 331 gboolean ianjuta_debugger_list_local (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 332 333 gboolean ianjuta_debugger_list_thread (IAnjutaDebugger *obj, IAnjutaDebuggerGListCallback callback, gpointer user_data, GError **err); 334 335 gboolean ianjuta_debugger_load (IAnjutaDebugger *obj, const gchar *file, const gchar *mime_type, const GList* source_search_directories, GError **err); 336 337 gboolean ianjuta_debugger_print (IAnjutaDebugger *obj, const gchar *name, IAnjutaDebuggerGCharCallback callback, gpointer user_data, GError **err); 338 339 gboolean ianjuta_debugger_quit (IAnjutaDebugger *obj, GError **err); 340 341 gboolean ianjuta_debugger_run (IAnjutaDebugger *obj, GError **err); 342 343 gboolean ianjuta_debugger_run_from (IAnjutaDebugger *obj, const gchar *file, gint line, GError **err); 344 345 gboolean ianjuta_debugger_run_to (IAnjutaDebugger *obj, const gchar* file, gint line, GError **err); 346 347 gboolean ianjuta_debugger_send_command (IAnjutaDebugger *obj, const gchar *command, GError **err); 348 349 gboolean ianjuta_debugger_set_environment (IAnjutaDebugger *obj, gchar **env, GError **err); 350 351 gboolean ianjuta_debugger_set_frame (IAnjutaDebugger *obj, guint frame, GError **err); 352 353 gboolean ianjuta_debugger_set_thread (IAnjutaDebugger *obj, gint thread, GError **err); 354 355 gboolean ianjuta_debugger_set_working_directory (IAnjutaDebugger *obj, const gchar *dir, GError **err); 356 357 gboolean ianjuta_debugger_start (IAnjutaDebugger *obj, const gchar *args, gboolean terminal, gboolean stop, GError **err); 358 359 gboolean ianjuta_debugger_step_in (IAnjutaDebugger *obj, GError **err); 360 361 gboolean ianjuta_debugger_step_out (IAnjutaDebugger *obj, GError **err); 362 363 gboolean ianjuta_debugger_step_over (IAnjutaDebugger *obj, GError **err); 364 365 gboolean ianjuta_debugger_unload (IAnjutaDebugger *obj, GError **err); 366 367 368 G_END_DECLS 369 370 #endif 371