This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
> > There is also Jim's suggestion which has some merits. I'm more of
> > an all or nothing kind of guy, so I prefer the approach I've chosen,
> > but I am flexible.
>
> I've got no strong opinions on this either way. Thresholds seem
> complicated as a UI.
I feel the same way too.
Here is a revised patch, that implements the language method.
Now, with C, we get:
(gdb) p array
$1 = {[0] = 1, [1] = 2, [2] = 3, [3] = 4}
This is also the default for all the other languages, except Ada, where
the debugger will print:
(gdb) p one_two_three
$1 = (1 => 1, 2 => 2, 3 => 3)
2005-09-07 Joel Brobecker <brobecker@adacore.com>
* language.h (language_defn): New field la_print_array_index.
(LA_PRINT_ARRAY_INDEX): New macro.
(default_print_array_index): Add declaration.
* language.c (default_print_array_index): new function.
(unknown_language): Add value for new field.
(auto_language): Likewise.
(local_language): Likewise.
* c-lang.c (c_language_defn): Likewise.
(cpluc_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
* f-lang.c (f_language_defn): Likewise.
* jv-lang.c (java_language_defn): Likewise.
* m2-lang.c (m2_language_defn): Likewise.
* objc-lang.c (objc_language_defn): Likewise.
* p-lang.c (pascal_language_defn): Likewise.
* ada-lang.c (ada_print_array_index): New function.
(ada_language_defn): Add value for new field.
* valprint.h (print_array_indexes_p): Add declaration.
(maybe_print_array_index): Add declaration.
(val_print_array_elements): Add new parameter to function profile.
* valprint.c (print_array_indexes): New static variable.
(show_print_array_indexes): New function.
(print_array_indexes_p): New function.
(maybe_print_array_index): New function.
(val_print_array_elements): Add new parameter real_index_offset.
Print the index of each element if required by the user.
(_initialize_valprint): Add new array-indexes "set/show print" command.
* c-valprint.c (c_val_print): Update call to val_print_array_elements.
* p-valprint.c (pascal_val_print): Likewise.
* ada-valprint.c (ada_get_array_low_bound_and_type): New function,
mostly extracted from print_optional_low_bound().
(print_optional_low_bound): Replace extracted code by call to
ada_get_array_low_bound_and_type(). Stop printing the low bound
if indexes will be printed for all elements of the array.
(val_print_packed_array_elements): Print the index of each element
of the array if necessary.
(ada_val_print_1): For non-packed arrays, compute the array low
bound, and pass it to val_print_array_elements().
Tested on x86-linux, no regression. Testcases and documentation to follow
after the review.
Thanks,
--
Joel
Attachment:
indexes.diff
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |