From 585fdaa10662a5a89a0de0dcfa076378df05a67b Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Tue, 25 Jan 2011 16:26:23 +0000 Subject: [PATCH] Centralize printing "". gdb/ * valprint.h (val_print_optimized_out): Declare. * cp-valprint.c (cp_print_value_fields): Use val_print_optimized_out. * jv-valprint.c (java_print_value_fields): Ditto. * p-valprint.c (pascal_object_print_value_fields): Ditto. * printcmd.c (print_formatted): Ditto. * valprint.c (valprint_check_validity): Ditto. (value_check_printable): Ditto. (val_print_optimized_out): New. gdb/doc/ * gdb.texinfo: s/value optimized out/optimized out/g gdb/testsuite/ * gdb.base/frame-args.exp: Adjust. * gdb.dwarf2/dw2-noloc.exp: Adjust. * gdb.dwarf2/dw2-inline-param.exp: Adjust. * gdb.dwarf2/pieces.exp: Adjust. * gdb.opt/clobbered-registers-O2.exp: Adjust. * gdb.opt/inline-locals.exp: Adjust. * gdb.threads/fork-child-threads.exp: Adjust. --- gdb/ChangeLog | 14 +++++++++++++ gdb/cp-valprint.c | 4 ++-- gdb/doc/ChangeLog | 4 ++++ gdb/doc/gdb.texinfo | 8 ++++---- gdb/jv-valprint.c | 4 ++-- gdb/p-valprint.c | 4 ++-- gdb/testsuite/ChangeLog | 10 +++++++++ gdb/testsuite/gdb.base/frame-args.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-noloc.exp | 26 ++++++++++++------------ gdb/testsuite/gdb.dwarf2/pieces.exp | 2 +- gdb/testsuite/gdb.opt/clobbered-registers-O2.exp | 4 ++-- gdb/testsuite/gdb.opt/inline-locals.exp | 4 ++-- gdb/testsuite/gdb.threads/fork-child-threads.exp | 2 +- gdb/valprint.c | 10 +++++++-- gdb/valprint.h | 2 ++ 16 files changed, 69 insertions(+), 33 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0cf9411..63825e7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,19 @@ 2011-01-25 Pedro Alves + Centralize printing "". + + * valprint.h (val_print_optimized_out): Declare. + * cp-valprint.c (cp_print_value_fields): Use + val_print_optimized_out. + * jv-valprint.c (java_print_value_fields): Ditto. + * p-valprint.c (pascal_object_print_value_fields): Ditto. + * printcmd.c (print_formatted): Ditto. + * valprint.c (valprint_check_validity): Ditto. + (value_check_printable): Ditto. + (val_print_optimized_out): New. + +2011-01-25 Pedro Alves + * infcmd.c (default_print_registers_info): Allocate values so to never pass a NULL value to val_print. diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index ff3908d..fff41d8 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -316,7 +316,7 @@ cp_print_value_fields (struct type *type, struct type *real_type, TYPE_FIELD_BITPOS (type, i), TYPE_FIELD_BITSIZE (type, i))) { - fputs_filtered (_(""), stream); + val_print_optimized_out (stream); } else { @@ -343,7 +343,7 @@ cp_print_value_fields (struct type *type, struct type *real_type, struct value *v = value_static_field (type, i); if (v == NULL) - fputs_filtered ("", stream); + val_print_optimized_out (stream); else cp_print_static_field (TYPE_FIELD_TYPE (type, i), v, stream, recurse + 1, diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index f926ebc..95c58f4 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,7 @@ +2011-01-25 Pedro Alves + + * gdb.texinfo: s/value optimized out/optimized out/g + 2011-01-21 Joel Brobecker * gdb.texinfo (Other Misc Settings): Rework part of the diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index cc2391b..5dc0af0 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -5951,7 +5951,7 @@ only if it is a scalar (integer, pointer, enumeration, etc). See command @kbd{set print frame-arguments} in @ref{Print Settings} for more details on how to configure the way function parameter values are printed. -@cindex value optimized out, in backtrace +@cindex optimized out, in backtrace @cindex function call arguments, optimized out If your program was compiled with optimizations, some compilers will optimize away arguments passed to functions if those arguments are @@ -5965,8 +5965,8 @@ such a backtrace might look like: @group #0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993 -#1 0x6e38 in expand_macro (sym=) at macro.c:242 -#2 0x6840 in expand_token (obs=0x0, t=, td=0xf7fffb08) +#1 0x6e38 in expand_macro (sym=) at macro.c:242 +#2 0x6840 in expand_token (obs=0x0, t=, td=0xf7fffb08) at macro.c:71 (More stack frames follow...) @end group @@ -5974,7 +5974,7 @@ such a backtrace might look like: @noindent The values of arguments that were not saved in their stack frames are -shown as @samp{}. +shown as @samp{}. If you need to display the values of such optimized-out arguments, either deduce that from other variables whose values depend on the one diff --git a/gdb/jv-valprint.c b/gdb/jv-valprint.c index f948fff..8c29f37 100644 --- a/gdb/jv-valprint.c +++ b/gdb/jv-valprint.c @@ -407,7 +407,7 @@ java_print_value_fields (struct type *type, const gdb_byte *valaddr, else if (!value_bits_valid (val, TYPE_FIELD_BITPOS (type, i), TYPE_FIELD_BITSIZE (type, i))) { - fputs_filtered (_(""), stream); + val_print_optimized_out (stream); } else { @@ -434,7 +434,7 @@ java_print_value_fields (struct type *type, const gdb_byte *valaddr, struct value *v = value_static_field (type, i); if (v == NULL) - fputs_filtered ("", stream); + val_print_optimized_out (stream); else { struct value_print_options opts; diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index 34decb9..f803ddc 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -810,7 +810,7 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr, else if (!value_bits_valid (val, TYPE_FIELD_BITPOS (type, i), TYPE_FIELD_BITSIZE (type, i))) { - fputs_filtered (_(""), stream); + val_print_optimized_out (stream); } else { @@ -842,7 +842,7 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr, unpack_field_as_long (type, valaddr + offset, i)); if (v == NULL) - fputs_filtered ("", stream); + val_print_optimized_out (stream); else pascal_object_print_static_field (v, stream, recurse + 1, options); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f1d5911..5219de1 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2011-01-25 Pedro Alves + + * gdb.base/frame-args.exp: Adjust. + * gdb.dwarf2/dw2-noloc.exp: Adjust. + * gdb.dwarf2/dw2-inline-param.exp: Adjust. + * gdb.dwarf2/pieces.exp: Adjust. + * gdb.opt/clobbered-registers-O2.exp: Adjust. + * gdb.opt/inline-locals.exp: Adjust. + * gdb.threads/fork-child-threads.exp: Adjust. + 2011-01-25 Ken Werner * gdb.opencl/convs_casts.cl: Move program scope variables into the diff --git a/gdb/testsuite/gdb.base/frame-args.exp b/gdb/testsuite/gdb.base/frame-args.exp index 6cd56c1..f17998c 100644 --- a/gdb/testsuite/gdb.base/frame-args.exp +++ b/gdb/testsuite/gdb.base/frame-args.exp @@ -40,7 +40,7 @@ if ![runto break_me] then { gdb_test_no_output "set print frame-arguments all" \ "set print frame-arguments all" gdb_test "frame 1" \ - ".*in call_me \\(i=3, f=5, s=({a = 3, b = 5}|), ss=0x\[0-9a-f\]\+, u=({.*}|), e=green\\) at .*frame-args\\.c:.*" \ + ".*in call_me \\(i=3, f=5, s=({a = 3, b = 5}|), ss=0x\[0-9a-f\]\+, u=({.*}|), e=green\\) at .*frame-args\\.c:.*" \ "frame 1 with print frame-arguments set to all" # Test with "print frame-arguments" set to "scalars" diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp index 1dcdbfb..c356ab1 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp @@ -57,4 +57,4 @@ if ![runto "*${break_at}"] { return -1 } -gdb_test "bt" "#0 (0x\[0-9a-f\]+ in )?func \\(funcparam=\\)\r\n#1 main \\(mainparam=\\)\[^\r\n\]*" +gdb_test "bt" "#0 (0x\[0-9a-f\]+ in )?func \\(funcparam=\\)\r\n#1 main \\(mainparam=\\)\[^\r\n\]*" diff --git a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp index 10e3659..07fde0e 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp @@ -46,16 +46,16 @@ proc file_symbols {type} { gdb_test "print file_locaddr_unresolvable" "= 1234567890" gdb_test "ptype file_locaddr_unresolvable" "type = int" - gdb_test "print file_locempty_resolvable" "= " + gdb_test "print file_locempty_resolvable" "= " gdb_test "ptype file_locempty_resolvable" "type = int" - gdb_test "print file_locempty_unresolvable" "= " + gdb_test "print file_locempty_unresolvable" "= " gdb_test "ptype file_locempty_unresolvable" "type = int" - gdb_test "print file_locno_resolvable" "= " + gdb_test "print file_locno_resolvable" "= " gdb_test "ptype file_locno_resolvable" "type = int" - gdb_test "print file_locno_unresolvable" "= " + gdb_test "print file_locno_unresolvable" "= " gdb_test "ptype file_locno_unresolvable" "type = int" gdb_test "print file_extern_locaddr_resolvable" "= 1234567890" @@ -64,10 +64,10 @@ proc file_symbols {type} { gdb_test "print file_extern_locaddr_unresolvable" "= 1234567890" gdb_test "ptype file_extern_locaddr_unresolvable" "type = int" - gdb_test "print file_extern_locempty_resolvable" "= " + gdb_test "print file_extern_locempty_resolvable" "= " gdb_test "ptype file_extern_locempty_resolvable" "type = int" - gdb_test "print file_extern_locempty_unresolvable" "= " + gdb_test "print file_extern_locempty_unresolvable" "= " gdb_test "ptype file_extern_locempty_unresolvable" "type = int" gdb_test "print file_extern_locno_resolvable" "= 1234567890" @@ -76,7 +76,7 @@ proc file_symbols {type} { # `print file_extern_locno_unresolvable' currently prints # Address of symbol "file_extern_locno_unresolvable" is unknown. # As DW_AT_declaration is not present in this DIE - # it should print . As usefulness of such DIE is not + # it should print . As usefulness of such DIE is not # clear its resolution is not being tested. set pf_prefix $old_prefix @@ -97,16 +97,16 @@ gdb_test "ptype main_local_locaddr_resolvable" "type = int" gdb_test "print main_local_locaddr_unresolvable" "= 1234567890" gdb_test "ptype main_local_locaddr_unresolvable" "type = int" -gdb_test "print main_local_locempty_resolvable" "= " +gdb_test "print main_local_locempty_resolvable" "= " gdb_test "ptype main_local_locempty_resolvable" "type = int" -gdb_test "print main_local_locempty_unresolvable" "= " +gdb_test "print main_local_locempty_unresolvable" "= " gdb_test "ptype main_local_locempty_unresolvable" "type = int" -gdb_test "print main_local_locno_resolvable" "= " +gdb_test "print main_local_locno_resolvable" "= " gdb_test "ptype main_local_locno_resolvable" "type = int" -gdb_test "print main_local_locno_unresolvable" "= " +gdb_test "print main_local_locno_unresolvable" "= " gdb_test "ptype main_local_locno_unresolvable" "type = int" gdb_test "print main_extern_locaddr_resolvable" "= 1234567890" @@ -115,10 +115,10 @@ gdb_test "ptype main_extern_locaddr_resolvable" "type = int" gdb_test "print main_extern_locaddr_unresolvable" "= 1234567890" gdb_test "ptype main_extern_locaddr_unresolvable" "type = int" -gdb_test "print main_extern_locempty_resolvable" "= " +gdb_test "print main_extern_locempty_resolvable" "= " gdb_test "ptype main_extern_locempty_resolvable" "type = int" -gdb_test "print main_extern_locempty_unresolvable" "= " +gdb_test "print main_extern_locempty_unresolvable" "= " gdb_test "ptype main_extern_locempty_unresolvable" "type = int" gdb_test "print main_extern_locno_resolvable" "= 1234567890" diff --git a/gdb/testsuite/gdb.dwarf2/pieces.exp b/gdb/testsuite/gdb.dwarf2/pieces.exp index a8fe30b..73780d8 100644 --- a/gdb/testsuite/gdb.dwarf2/pieces.exp +++ b/gdb/testsuite/gdb.dwarf2/pieces.exp @@ -82,7 +82,7 @@ proc pieces_test_f6 {} { "set f6 breakpoint for pieces" gdb_continue_to_breakpoint "continue to f6 breakpoint for pieces" gdb_test "print a" \ - " = {i = 7, j = 8, q = .value optimized out.}" \ + " = {i = 7, j = 8, q = .optimized out.}" \ "print a with optimized out piece" # Note: no warning for this case. gdb_test_multiple "print a.i" \ diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp b/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp index 56485c8..65149e3 100644 --- a/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp +++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp @@ -53,12 +53,12 @@ if { ![runto start_sequence] } then { gdb_test "frame 1" "#1.*in gen_movsd.*" "Backtracing" gdb_test_multiple "print operand0" "print operand0" { - -re "\\\$$decimal = \r\n$gdb_prompt $" { pass "print operand0"} + -re "\\\$$decimal = \r\n$gdb_prompt $" { pass "print operand0"} -re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand0" "13" "print operand0" } } gdb_test_multiple "print operand1" "print operand1" { - -re "\\\$$decimal = \r\n$gdb_prompt $" { pass "print operand1"} + -re "\\\$$decimal = \r\n$gdb_prompt $" { pass "print operand1"} -re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand1" "14" "print operand1" } } diff --git a/gdb/testsuite/gdb.opt/inline-locals.exp b/gdb/testsuite/gdb.opt/inline-locals.exp index 5c5cf31..f758f33 100644 --- a/gdb/testsuite/gdb.opt/inline-locals.exp +++ b/gdb/testsuite/gdb.opt/inline-locals.exp @@ -62,7 +62,7 @@ if { ! $no_frames } { -re "arg1 = $decimal\r\n$gdb_prompt $" { pass $msg } - -re "arg1 = \r\n$gdb_prompt $" { + -re "arg1 = \r\n$gdb_prompt $" { # GCC 4.3 and later lose location information for arg1. GCC 4.2 is OK. if { [test_compiler_info "gcc-4-3-*"] || [test_compiler_info "gcc-4-4-*"]} { setup_xfail *-*-* @@ -101,7 +101,7 @@ if { ! $no_frames } { -re "arg1 = $decimal\r\n$gdb_prompt $" { pass $msg } - -re "arg1 = \r\n$gdb_prompt $" { + -re "arg1 = \r\n$gdb_prompt $" { # GCC 4.3 and later lose location information for arg1. GCC 4.2 is OK. if { [test_compiler_info "gcc-4-3-*"] || [test_compiler_info "gcc-4-4-*"]} { setup_xfail *-*-* diff --git a/gdb/testsuite/gdb.threads/fork-child-threads.exp b/gdb/testsuite/gdb.threads/fork-child-threads.exp index 19a193b..facc2eb 100644 --- a/gdb/testsuite/gdb.threads/fork-child-threads.exp +++ b/gdb/testsuite/gdb.threads/fork-child-threads.exp @@ -52,6 +52,6 @@ gdb_test "continue" "Breakpoint 2, start.*" "get to the spawned thread" # * 2 LWP 4466 start (arg=0x0) at fork-child-threads.c:28 # Correct: # * 3 Thread 0x40a00950 (LWP 5553) start (arg=0x0) at ../.././gdb/testsuite/gdb.threads/fork-child-threads.c:28 -# 2 Thread 0x2aaaaaac3000 (LWP 5552) 0x00000031674076dd in pthread_join (threadid=, thread_return=) at pthread_join.c:89 +# 2 Thread 0x2aaaaaac3000 (LWP 5552) 0x00000031674076dd in pthread_join (threadid=, thread_return=) at pthread_join.c:89 gdb_test "info threads" " Thread .* Thread .*" "two threads found" diff --git a/gdb/valprint.c b/gdb/valprint.c index c98e315..6ddbed8 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -272,7 +272,7 @@ valprint_check_validity (struct ui_file *stream, if (! value_bits_valid (val, TARGET_CHAR_BIT * offset, TARGET_CHAR_BIT * TYPE_LENGTH (type))) { - fprintf_filtered (stream, _("")); + val_print_optimized_out (stream); return 0; } @@ -287,6 +287,12 @@ valprint_check_validity (struct ui_file *stream, return 1; } +void +val_print_optimized_out (struct ui_file *stream) +{ + fprintf_filtered (stream, _("")); +} + /* Print using the given LANGUAGE the data of type TYPE located at VALADDR (within GDB), which came from the inferior at address ADDRESS, onto stdio stream STREAM according to OPTIONS. @@ -378,7 +384,7 @@ value_check_printable (struct value *val, struct ui_file *stream) if (value_entirely_optimized_out (val)) { - fprintf_filtered (stream, _("")); + val_print_optimized_out (stream); return 0; } diff --git a/gdb/valprint.h b/gdb/valprint.h index 94feb06..ee9830a 100644 --- a/gdb/valprint.h +++ b/gdb/valprint.h @@ -145,4 +145,6 @@ int read_string (CORE_ADDR addr, int len, int width, unsigned int fetchlimit, enum bfd_endian byte_order, gdb_byte **buffer, int *bytes_read); +extern void val_print_optimized_out (struct ui_file *stream); + #endif -- 2.7.4