int a2_initialize(void *ctx, int *debugger_stdin, int *debugger_stdout, int *inferior_stdin, int *inferior_stdout) { struct annotate_two *a2 = (struct annotate_two *) ctx; *debugger_stdin = a2->debugger_stdin; *debugger_stdout = a2->debugger_out; a2->data = data_initialize(); a2->sm = state_machine_initialize(); a2->c = commands_initialize(); a2->g = globals_initialize(); a2->client_command_list = tgdb_list_init(); a2_open_new_tty(a2, inferior_stdin, inferior_stdout); /* gdb may already have some breakpoints when it starts. This could happen * if the user puts breakpoints in there .gdbinit. * This makes sure that TGDB asks for the breakpoints on start up. */ if (commands_issue_command(a2->c, a2->client_command_list, ANNOTATE_INFO_BREAKPOINTS, NULL, 0) == -1) { logger_write_pos(logger, __FILE__, __LINE__, "commands_issue_command error"); return -1; } a2->tgdb_initialized = 1; return 0; }
int a2_initialize(struct annotate_two *a2, int *debugger_stdin, int *debugger_stdout, int *inferior_stdin, int *inferior_stdout) { *debugger_stdin = a2->debugger_stdin; *debugger_stdout = a2->debugger_out; a2->data = data_initialize(); a2->sm = state_machine_initialize(); a2->c = commands_initialize(); a2->g = globals_initialize(); a2->client_command_list = tgdb_list_init(); a2_open_new_tty(a2, inferior_stdin, inferior_stdout); /* Need to get source information before breakpoint information otherwise * the TGDB_UPDATE_BREAKPOINTS event will be ignored in process_commands() * because there are no source files to add the breakpoints to. */ a2_get_current_location(a2, 1); /* gdb may already have some breakpoints when it starts. This could happen * if the user puts breakpoints in there .gdbinit. * This makes sure that TGDB asks for the breakpoints on start up. */ if (commands_issue_command(a2->c, a2->client_command_list, ANNOTATE_INFO_BREAKPOINTS, NULL, 0) == -1) { logger_write_pos(logger, __FILE__, __LINE__, "commands_issue_command error"); return -1; } a2->tgdb_initialized = 1; return 0; }