diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2008-09-11 14:21:49 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2008-09-11 14:21:49 +0000 |
commit | 8b9b9e1a3a418a932d0ab62df99466c685d7b184 (patch) | |
tree | 8c3f9e066802936f3dd3339b92c6daa98ba788d5 | |
parent | b769d911fd1a0ffdde4305b1cb7a9a8265549896 (diff) | |
download | gdb-8b9b9e1a3a418a932d0ab62df99466c685d7b184.zip gdb-8b9b9e1a3a418a932d0ab62df99466c685d7b184.tar.gz gdb-8b9b9e1a3a418a932d0ab62df99466c685d7b184.tar.bz2 |
* defs.h (struct gdbarch): Add forward declaration.
(set_next_address): Add GDBARCH argument.
* printcmd.c (set_next_address): Use it to find pointer type.
* breakpoint.c (breakpoint_1): Update call.
* source.c (line_info): Likewise.
* findcmd.c (find_command): Use current_gdbarch to find pointer type.
* breakpoint.c (set_breakpoint_count): Use platform-neutral
types for internal variable values.
* infrun.c (handle_inferior_event): Likewise.
* source.c (forward_search_command, reverse_search_command): Likewise.
* tracepoint.c (set_tracepoint_count, set_traceframe_num,
set_tracepoint_num, set_traceframe_context): Likewise.
-rw-r--r-- | gdb/breakpoint.c | 4 | ||||
-rw-r--r-- | gdb/defs.h | 3 | ||||
-rw-r--r-- | gdb/findcmd.c | 7 | ||||
-rw-r--r-- | gdb/infrun.c | 2 | ||||
-rw-r--r-- | gdb/printcmd.c | 6 | ||||
-rw-r--r-- | gdb/source.c | 6 | ||||
-rw-r--r-- | gdb/tracepoint.c | 31 |
7 files changed, 29 insertions, 30 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index fa7fb69..9454428 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -401,7 +401,7 @@ set_breakpoint_count (int num) { breakpoint_count = num; set_internalvar (lookup_internalvar ("bpnum"), - value_from_longest (builtin_type_int, (LONGEST) num)); + value_from_longest (builtin_type_int32, (LONGEST) num)); } /* Used in run_command to zero the hit count when a new run starts. */ @@ -4031,7 +4031,7 @@ breakpoint_1 (int bnum, int allflag) /* Compare against (CORE_ADDR)-1 in case some compiler decides that a comparison of an unsigned with -1 is always false. */ if (last_addr != (CORE_ADDR) -1 && !server_command) - set_next_address (last_addr); + set_next_address (current_gdbarch, last_addr); } /* FIXME? Should this be moved up so that it is only called when @@ -298,6 +298,7 @@ struct cleanup struct symtab; struct breakpoint; struct frame_info; +struct gdbarch; /* From utils.c */ @@ -572,7 +573,7 @@ extern int info_verbose; /* From printcmd.c */ -extern void set_next_address (CORE_ADDR); +extern void set_next_address (struct gdbarch *, CORE_ADDR); extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int, char *); diff --git a/gdb/findcmd.c b/gdb/findcmd.c index a1dfaf3..2996fb0 100644 --- a/gdb/findcmd.c +++ b/gdb/findcmd.c @@ -292,13 +292,14 @@ find_command (char *args, int from_tty) /* Record and print the results. */ set_internalvar (lookup_internalvar ("numfound"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) found_count)); if (found_count > 0) { + struct gdbarch *gdbarch = current_gdbarch; + struct type *ptr_type = builtin_type (gdbarch)->builtin_data_ptr; set_internalvar (lookup_internalvar ("_"), - value_from_pointer (builtin_type_void_data_ptr, - last_found_addr)); + value_from_pointer (ptr_type, last_found_addr)); } if (found_count == 0) diff --git a/gdb/infrun.c b/gdb/infrun.c index 62c4ab3..d914f0a 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2006,7 +2006,7 @@ handle_inferior_event (struct execution_control_state *ecs) /* Record the exit code in the convenience variable $_exitcode, so that the user can inspect this again later. */ set_internalvar (lookup_internalvar ("_exitcode"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) ecs->ws.value.integer)); gdb_flush (gdb_stdout); target_mourn_inferior (); diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 1310994..fae39fe 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -503,13 +503,15 @@ print_scalar_formatted (const void *valaddr, struct type *type, The `info lines' command uses this. */ void -set_next_address (CORE_ADDR addr) +set_next_address (struct gdbarch *gdbarch, CORE_ADDR addr) { + struct type *ptr_type = builtin_type (gdbarch)->builtin_data_ptr; + next_address = addr; /* Make address available to the user as $_. */ set_internalvar (lookup_internalvar ("_"), - value_from_pointer (builtin_type_void_data_ptr, addr)); + value_from_pointer (ptr_type, addr)); } /* Optionally print address ADDR symbolically as <SYMBOL+OFFSET> on STREAM, diff --git a/gdb/source.c b/gdb/source.c index e0ae0b1..9493fd1 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -1511,7 +1511,7 @@ line_info (char *arg, int from_tty) } /* x/i should display this line's code. */ - set_next_address (start_pc); + set_next_address (current_gdbarch, start_pc); /* Repeating "info line" should do the following line. */ last_line_listed = sal.line + 1; @@ -1614,7 +1614,7 @@ forward_search_command (char *regex, int from_tty) fclose (stream); print_source_lines (current_source_symtab, line, line + 1, 0); set_internalvar (lookup_internalvar ("_"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) line)); current_source_line = max (line - lines_to_list / 2, 1); return; @@ -1696,7 +1696,7 @@ reverse_search_command (char *regex, int from_tty) fclose (stream); print_source_lines (current_source_symtab, line, line + 1, 0); set_internalvar (lookup_internalvar ("_"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) line)); current_source_line = max (line - lines_to_list / 2, 1); return; diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 671a63a..690eba3 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -220,7 +220,7 @@ set_tracepoint_count (int num) { tracepoint_count = num; set_internalvar (lookup_internalvar ("tpnum"), - value_from_longest (builtin_type_int, (LONGEST) num)); + value_from_longest (builtin_type_int32, (LONGEST) num)); } /* Set traceframe number to NUM. */ @@ -229,7 +229,7 @@ set_traceframe_num (int num) { traceframe_number = num; set_internalvar (lookup_internalvar ("trace_frame"), - value_from_longest (builtin_type_int, (LONGEST) num)); + value_from_longest (builtin_type_int32, (LONGEST) num)); } /* Set tracepoint number to NUM. */ @@ -238,8 +238,7 @@ set_tracepoint_num (int num) { tracepoint_number = num; set_internalvar (lookup_internalvar ("tracepoint"), - value_from_longest (builtin_type_int, - (LONGEST) num)); + value_from_longest (builtin_type_int32, (LONGEST) num)); } /* Set externally visible debug variables for querying/printing @@ -252,23 +251,19 @@ set_traceframe_context (CORE_ADDR trace_pc) static struct type *func_range, *file_range; struct value *func_val; struct value *file_val; - static struct type *charstar; int len; - if (charstar == (struct type *) NULL) - charstar = lookup_pointer_type (builtin_type_char); - if (trace_pc == -1) /* Cease debugging any trace buffers. */ { traceframe_fun = 0; traceframe_sal.pc = traceframe_sal.line = 0; traceframe_sal.symtab = NULL; set_internalvar (lookup_internalvar ("trace_func"), - value_from_pointer (charstar, (LONGEST) 0)); + allocate_value (builtin_type_void)); set_internalvar (lookup_internalvar ("trace_file"), - value_from_pointer (charstar, (LONGEST) 0)); + allocate_value (builtin_type_void)); set_internalvar (lookup_internalvar ("trace_line"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) - 1)); return; } @@ -280,7 +275,7 @@ set_traceframe_context (CORE_ADDR trace_pc) /* Save linenumber as "$trace_line", a debugger variable visible to users. */ set_internalvar (lookup_internalvar ("trace_line"), - value_from_longest (builtin_type_int, + value_from_longest (builtin_type_int32, (LONGEST) traceframe_sal.line)); /* Save func name as "$trace_func", a debugger variable visible to @@ -288,14 +283,14 @@ set_traceframe_context (CORE_ADDR trace_pc) if (traceframe_fun == NULL || SYMBOL_LINKAGE_NAME (traceframe_fun) == NULL) set_internalvar (lookup_internalvar ("trace_func"), - value_from_pointer (charstar, (LONGEST) 0)); + allocate_value (builtin_type_void)); else { len = strlen (SYMBOL_LINKAGE_NAME (traceframe_fun)); func_range = create_range_type (func_range, - builtin_type_int, 0, len - 1); + builtin_type_int32, 0, len - 1); func_string = create_array_type (func_string, - builtin_type_char, func_range); + builtin_type_true_char, func_range); func_val = allocate_value (func_string); deprecated_set_value_type (func_val, func_string); memcpy (value_contents_raw (func_val), @@ -310,14 +305,14 @@ set_traceframe_context (CORE_ADDR trace_pc) if (traceframe_sal.symtab == NULL || traceframe_sal.symtab->filename == NULL) set_internalvar (lookup_internalvar ("trace_file"), - value_from_pointer (charstar, (LONGEST) 0)); + allocate_value (builtin_type_void)); else { len = strlen (traceframe_sal.symtab->filename); file_range = create_range_type (file_range, - builtin_type_int, 0, len - 1); + builtin_type_int32, 0, len - 1); file_string = create_array_type (file_string, - builtin_type_char, file_range); + builtin_type_true_char, file_range); file_val = allocate_value (file_string); deprecated_set_value_type (file_val, file_string); memcpy (value_contents_raw (file_val), |