mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 22:40:24 +00:00
catch_errors() takes PTR argument/func instead of char* argument/func.
Update breakpoint.c. Fix (?) cover_target_enable_exception_callback(). Wasn't returning a value.
This commit is contained in:
parent
2bef607561
commit
6e45c399c1
@ -1,3 +1,21 @@
|
||||
Mon Jan 18 08:47:02 1999 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* defs.h (catch_errors_ftype): Define.
|
||||
(catch_errors): Replace char* arg with PTR arg.
|
||||
* top.c (catch_errors): Update
|
||||
|
||||
* breakpoint.c (bpstat_stop_status, bpstat_stop_status,
|
||||
delete_breakpoint, breakpoint_re_set): Delete all casts in call to
|
||||
catch_errors.
|
||||
(breakpoint_cond_eval, watchpoint_check,
|
||||
cover_target_enable_exception_callback, breakpoint_re_set_one):
|
||||
Arg is PTR not char*.
|
||||
|
||||
* breakpoint.c (cover_target_enable_exception_callback): Change
|
||||
type to int. Check for cast values of 0 and -1. Return a result!
|
||||
(insert_breakpoints): Move declaration of SAL and ARGS to where
|
||||
they are used.
|
||||
|
||||
1999-01-16 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||
|
||||
* remote.c (remote_query): new function - creates proper interface
|
||||
|
@ -68,8 +68,7 @@ map_breakpoint_numbers PARAMS ((char *, void (*)(struct breakpoint *)));
|
||||
static void
|
||||
ignore_command PARAMS ((char *, int));
|
||||
|
||||
static int
|
||||
breakpoint_re_set_one PARAMS ((char *));
|
||||
static int breakpoint_re_set_one PARAMS ((PTR));
|
||||
|
||||
static void
|
||||
clear_command PARAMS ((char *, int));
|
||||
@ -116,8 +115,7 @@ breakpoint_1 PARAMS ((int, int));
|
||||
static bpstat
|
||||
bpstat_alloc PARAMS ((struct breakpoint *, bpstat));
|
||||
|
||||
static int
|
||||
breakpoint_cond_eval PARAMS ((char *));
|
||||
static int breakpoint_cond_eval PARAMS ((PTR));
|
||||
|
||||
static void
|
||||
cleanup_executing_breakpoints PARAMS ((PTR));
|
||||
@ -154,10 +152,9 @@ typedef struct {
|
||||
int enable;
|
||||
} args_for_catchpoint_enable;
|
||||
|
||||
static int watchpoint_check PARAMS ((char *));
|
||||
static int watchpoint_check PARAMS ((PTR));
|
||||
|
||||
static struct symtab_and_line *
|
||||
cover_target_enable_exception_callback PARAMS ((args_for_catchpoint_enable *));
|
||||
static int cover_target_enable_exception_callback PARAMS ((PTR));
|
||||
|
||||
static int print_it_done PARAMS ((bpstat));
|
||||
|
||||
@ -647,8 +644,6 @@ insert_breakpoints ()
|
||||
/* If we get here, we must have a callback mechanism for exception
|
||||
events -- with g++ style embedded label support, we insert
|
||||
ordinary breakpoints and not catchpoints. */
|
||||
struct symtab_and_line * sal;
|
||||
args_for_catchpoint_enable args;
|
||||
sprintf (message, message1, b->number); /* Format possible error message */
|
||||
|
||||
val = target_insert_breakpoint(b->address, b->shadow_contents);
|
||||
@ -663,25 +658,25 @@ insert_breakpoints ()
|
||||
else
|
||||
{
|
||||
/* Bp set, now make sure callbacks are enabled */
|
||||
args.kind = b->type == bp_catch_catch ? EX_EVENT_CATCH : EX_EVENT_THROW;
|
||||
args.enable = 1;
|
||||
sal = (struct symtab_and_line *)
|
||||
catch_errors ((int (*) PARAMS ((char *)))
|
||||
cover_target_enable_exception_callback,
|
||||
(char *) &args,
|
||||
message, RETURN_MASK_ALL);
|
||||
if (sal && (sal != (struct symtab_and_line *) -1))
|
||||
{
|
||||
b->inserted = 1;
|
||||
}
|
||||
/* Check if something went wrong; sal == 0 can be ignored */
|
||||
if (sal == (struct symtab_and_line *) -1)
|
||||
{
|
||||
/* something went wrong */
|
||||
target_terminal_ours_for_output ();
|
||||
fprintf_unfiltered (gdb_stderr, "Cannot insert catchpoint %d; disabling it\n", b->number);
|
||||
b->enable = disabled;
|
||||
}
|
||||
int val;
|
||||
args_for_catchpoint_enable args;
|
||||
args.kind = b->type == bp_catch_catch ? EX_EVENT_CATCH : EX_EVENT_THROW;
|
||||
args.enable = 1;
|
||||
val = catch_errors (cover_target_enable_exception_callback,
|
||||
&args,
|
||||
message, RETURN_MASK_ALL);
|
||||
if (val != 0 && val != -1)
|
||||
{
|
||||
b->inserted = 1;
|
||||
}
|
||||
/* Check if something went wrong; val == 0 can be ignored */
|
||||
if (val == -1)
|
||||
{
|
||||
/* something went wrong */
|
||||
target_terminal_ours_for_output ();
|
||||
fprintf_unfiltered (gdb_stderr, "Cannot insert catchpoint %d; disabling it\n", b->number);
|
||||
b->enable = disabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1807,7 +1802,7 @@ bpstat_print (bs)
|
||||
|
||||
static int
|
||||
breakpoint_cond_eval (exp)
|
||||
char *exp;
|
||||
PTR exp;
|
||||
{
|
||||
value_ptr mark = value_mark ();
|
||||
int i = !value_true (evaluate_expression ((struct expression *)exp));
|
||||
@ -1850,7 +1845,7 @@ bpstat_alloc (b, cbs)
|
||||
|
||||
static int
|
||||
watchpoint_check (p)
|
||||
char *p;
|
||||
PTR p;
|
||||
{
|
||||
bpstat bs = (bpstat) p;
|
||||
struct breakpoint *b;
|
||||
@ -2079,8 +2074,7 @@ bpstat_stop_status (pc, not_a_breakpoint)
|
||||
sprintf (message, message1, b->number);
|
||||
if (b->type == bp_watchpoint || b->type == bp_hardware_watchpoint)
|
||||
{
|
||||
switch (catch_errors ((int (*) PARAMS ((char *))) watchpoint_check, (char *) bs, message,
|
||||
RETURN_MASK_ALL))
|
||||
switch (catch_errors (watchpoint_check, bs, message, RETURN_MASK_ALL))
|
||||
{
|
||||
case WP_DELETED:
|
||||
/* We've already printed what needs to be printed. */
|
||||
@ -2134,8 +2128,7 @@ bpstat_stop_status (pc, not_a_breakpoint)
|
||||
}
|
||||
}
|
||||
if (found)
|
||||
switch (catch_errors ((int (*) PARAMS ((char *))) watchpoint_check, (char *) bs, message,
|
||||
RETURN_MASK_ALL))
|
||||
switch (catch_errors (watchpoint_check, bs, message, RETURN_MASK_ALL))
|
||||
{
|
||||
case WP_DELETED:
|
||||
/* We've already printed what needs to be printed. */
|
||||
@ -2184,7 +2177,7 @@ bpstat_stop_status (pc, not_a_breakpoint)
|
||||
so that the conditions will have the right context. */
|
||||
select_frame (get_current_frame (), 0);
|
||||
value_is_zero
|
||||
= catch_errors ((int (*) PARAMS ((char *))) breakpoint_cond_eval, (char *)(b->cond),
|
||||
= catch_errors (breakpoint_cond_eval, (b->cond),
|
||||
"Error in testing breakpoint condition:\n",
|
||||
RETURN_MASK_ALL);
|
||||
/* FIXME-someday, should give breakpoint # */
|
||||
@ -5014,11 +5007,19 @@ catch_exception_command_1 (ex_event, arg, tempflag, from_tty)
|
||||
/* Cover routine to allow wrapping target_enable_exception_catchpoints
|
||||
inside a catch_errors */
|
||||
|
||||
static struct symtab_and_line *
|
||||
cover_target_enable_exception_callback (args)
|
||||
args_for_catchpoint_enable * args;
|
||||
static int
|
||||
cover_target_enable_exception_callback (arg)
|
||||
PTR arg;
|
||||
{
|
||||
target_enable_exception_callback (args->kind, args->enable);
|
||||
args_for_catchpoint_enable *args = arg;
|
||||
struct symtab_and_line *sal;
|
||||
sal = target_enable_exception_callback (args->kind, args->enable);
|
||||
if (sal == NULL)
|
||||
return 0;
|
||||
else if (sal == (struct symtab_and_line *) -1)
|
||||
return -1;
|
||||
else
|
||||
return 1; /*is valid*/
|
||||
}
|
||||
|
||||
|
||||
@ -5548,9 +5549,8 @@ delete_breakpoint (bpt)
|
||||
sprintf (message, message1, bpt->number); /* Format possible error msg */
|
||||
args.kind = bpt->type == bp_catch_catch ? EX_EVENT_CATCH : EX_EVENT_THROW;
|
||||
args.enable = 0;
|
||||
(void) catch_errors ((int (*) PARAMS ((char *))) cover_target_enable_exception_callback,
|
||||
(char *) &args,
|
||||
message, RETURN_MASK_ALL);
|
||||
catch_errors (cover_target_enable_exception_callback, &args,
|
||||
message, RETURN_MASK_ALL);
|
||||
}
|
||||
|
||||
|
||||
@ -5703,7 +5703,7 @@ delete_command (arg, from_tty)
|
||||
|
||||
static int
|
||||
breakpoint_re_set_one (bint)
|
||||
char *bint;
|
||||
PTR bint;
|
||||
{
|
||||
struct breakpoint *b = (struct breakpoint *)bint; /* get past catch_errs */
|
||||
struct value *mark;
|
||||
@ -5888,8 +5888,7 @@ breakpoint_re_set ()
|
||||
ALL_BREAKPOINTS_SAFE (b, temp)
|
||||
{
|
||||
sprintf (message, message1, b->number); /* Format possible error msg */
|
||||
catch_errors ((int (*) PARAMS ((char *))) breakpoint_re_set_one, (char *) b, message,
|
||||
RETURN_MASK_ALL);
|
||||
catch_errors (breakpoint_re_set_one, b, message, RETURN_MASK_ALL);
|
||||
}
|
||||
set_language (save_language);
|
||||
input_radix = save_input_radix;
|
||||
|
Loading…
Reference in New Issue
Block a user