mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
Centralize printing "<optimized out>".
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.
This commit is contained in:
@ -1,3 +1,17 @@
|
|||||||
|
2011-01-25 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
Centralize printing "<optimized out>".
|
||||||
|
|
||||||
|
* 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 <pedro@codesourcery.com>
|
2011-01-25 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
* infcmd.c (default_print_registers_info): Allocate values so to
|
* infcmd.c (default_print_registers_info): Allocate values so to
|
||||||
|
@ -316,7 +316,7 @@ cp_print_value_fields (struct type *type, struct type *real_type,
|
|||||||
TYPE_FIELD_BITPOS (type, i),
|
TYPE_FIELD_BITPOS (type, i),
|
||||||
TYPE_FIELD_BITSIZE (type, i)))
|
TYPE_FIELD_BITSIZE (type, i)))
|
||||||
{
|
{
|
||||||
fputs_filtered (_("<value optimized out>"), stream);
|
val_print_optimized_out (stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -343,7 +343,7 @@ cp_print_value_fields (struct type *type, struct type *real_type,
|
|||||||
struct value *v = value_static_field (type, i);
|
struct value *v = value_static_field (type, i);
|
||||||
|
|
||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
fputs_filtered ("<optimized out>", stream);
|
val_print_optimized_out (stream);
|
||||||
else
|
else
|
||||||
cp_print_static_field (TYPE_FIELD_TYPE (type, i),
|
cp_print_static_field (TYPE_FIELD_TYPE (type, i),
|
||||||
v, stream, recurse + 1,
|
v, stream, recurse + 1,
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2011-01-25 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* gdb.texinfo: s/value optimized out/optimized out/g
|
||||||
|
|
||||||
2011-01-21 Joel Brobecker <brobecker@adacore.com>
|
2011-01-21 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
* gdb.texinfo (Other Misc Settings): Rework part of the
|
* gdb.texinfo (Other Misc Settings): Rework part of the
|
||||||
|
@ -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
|
@kbd{set print frame-arguments} in @ref{Print Settings} for more details
|
||||||
on how to configure the way function parameter values are printed.
|
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
|
@cindex function call arguments, optimized out
|
||||||
If your program was compiled with optimizations, some compilers will
|
If your program was compiled with optimizations, some compilers will
|
||||||
optimize away arguments passed to functions if those arguments are
|
optimize away arguments passed to functions if those arguments are
|
||||||
@ -5965,8 +5965,8 @@ such a backtrace might look like:
|
|||||||
@group
|
@group
|
||||||
#0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8)
|
#0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8)
|
||||||
at builtin.c:993
|
at builtin.c:993
|
||||||
#1 0x6e38 in expand_macro (sym=<value optimized out>) at macro.c:242
|
#1 0x6e38 in expand_macro (sym=<optimized out>) at macro.c:242
|
||||||
#2 0x6840 in expand_token (obs=0x0, t=<value optimized out>, td=0xf7fffb08)
|
#2 0x6840 in expand_token (obs=0x0, t=<optimized out>, td=0xf7fffb08)
|
||||||
at macro.c:71
|
at macro.c:71
|
||||||
(More stack frames follow...)
|
(More stack frames follow...)
|
||||||
@end group
|
@end group
|
||||||
@ -5974,7 +5974,7 @@ such a backtrace might look like:
|
|||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
The values of arguments that were not saved in their stack frames are
|
The values of arguments that were not saved in their stack frames are
|
||||||
shown as @samp{<value optimized out>}.
|
shown as @samp{<optimized out>}.
|
||||||
|
|
||||||
If you need to display the values of such optimized-out arguments,
|
If you need to display the values of such optimized-out arguments,
|
||||||
either deduce that from other variables whose values depend on the one
|
either deduce that from other variables whose values depend on the one
|
||||||
|
@ -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),
|
else if (!value_bits_valid (val, TYPE_FIELD_BITPOS (type, i),
|
||||||
TYPE_FIELD_BITSIZE (type, i)))
|
TYPE_FIELD_BITSIZE (type, i)))
|
||||||
{
|
{
|
||||||
fputs_filtered (_("<value optimized out>"), stream);
|
val_print_optimized_out (stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -434,7 +434,7 @@ java_print_value_fields (struct type *type, const gdb_byte *valaddr,
|
|||||||
struct value *v = value_static_field (type, i);
|
struct value *v = value_static_field (type, i);
|
||||||
|
|
||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
fputs_filtered ("<optimized out>", stream);
|
val_print_optimized_out (stream);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct value_print_options opts;
|
struct value_print_options opts;
|
||||||
|
@ -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),
|
else if (!value_bits_valid (val, TYPE_FIELD_BITPOS (type, i),
|
||||||
TYPE_FIELD_BITSIZE (type, i)))
|
TYPE_FIELD_BITSIZE (type, i)))
|
||||||
{
|
{
|
||||||
fputs_filtered (_("<value optimized out>"), stream);
|
val_print_optimized_out (stream);
|
||||||
}
|
}
|
||||||
else
|
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));
|
unpack_field_as_long (type, valaddr + offset, i));
|
||||||
|
|
||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
fputs_filtered ("<optimized out>", stream);
|
val_print_optimized_out (stream);
|
||||||
else
|
else
|
||||||
pascal_object_print_static_field (v, stream, recurse + 1,
|
pascal_object_print_static_field (v, stream, recurse + 1,
|
||||||
options);
|
options);
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2011-01-25 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* 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 <ken.werner@de.ibm.com>
|
2011-01-25 Ken Werner <ken.werner@de.ibm.com>
|
||||||
|
|
||||||
* gdb.opencl/convs_casts.cl: Move program scope variables into the
|
* gdb.opencl/convs_casts.cl: Move program scope variables into the
|
||||||
|
@ -40,7 +40,7 @@ if ![runto break_me] then {
|
|||||||
gdb_test_no_output "set print frame-arguments all" \
|
gdb_test_no_output "set print frame-arguments all" \
|
||||||
"set print frame-arguments all"
|
"set print frame-arguments all"
|
||||||
gdb_test "frame 1" \
|
gdb_test "frame 1" \
|
||||||
".*in call_me \\(i=3, f=5, s=({a = 3, b = 5}|<value optimized out>), ss=0x\[0-9a-f\]\+, u=({.*}|<value optimized out>), e=green\\) at .*frame-args\\.c:.*" \
|
".*in call_me \\(i=3, f=5, s=({a = 3, b = 5}|<optimized out>), ss=0x\[0-9a-f\]\+, u=({.*}|<optimized out>), e=green\\) at .*frame-args\\.c:.*" \
|
||||||
"frame 1 with print frame-arguments set to all"
|
"frame 1 with print frame-arguments set to all"
|
||||||
|
|
||||||
# Test with "print frame-arguments" set to "scalars"
|
# Test with "print frame-arguments" set to "scalars"
|
||||||
|
@ -57,4 +57,4 @@ if ![runto "*${break_at}"] {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_test "bt" "#0 (0x\[0-9a-f\]+ in )?func \\(funcparam=<value optimized out>\\)\r\n#1 main \\(mainparam=<value optimized out>\\)\[^\r\n\]*"
|
gdb_test "bt" "#0 (0x\[0-9a-f\]+ in )?func \\(funcparam=<optimized out>\\)\r\n#1 main \\(mainparam=<optimized out>\\)\[^\r\n\]*"
|
||||||
|
@ -46,16 +46,16 @@ proc file_symbols {type} {
|
|||||||
gdb_test "print file_locaddr_unresolvable" "= 1234567890"
|
gdb_test "print file_locaddr_unresolvable" "= 1234567890"
|
||||||
gdb_test "ptype file_locaddr_unresolvable" "type = int"
|
gdb_test "ptype file_locaddr_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_locempty_resolvable" "= <value optimized out>"
|
gdb_test "print file_locempty_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_locempty_resolvable" "type = int"
|
gdb_test "ptype file_locempty_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_locempty_unresolvable" "= <value optimized out>"
|
gdb_test "print file_locempty_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_locempty_unresolvable" "type = int"
|
gdb_test "ptype file_locempty_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_locno_resolvable" "= <value optimized out>"
|
gdb_test "print file_locno_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_locno_resolvable" "type = int"
|
gdb_test "ptype file_locno_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_locno_unresolvable" "= <value optimized out>"
|
gdb_test "print file_locno_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_locno_unresolvable" "type = int"
|
gdb_test "ptype file_locno_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_extern_locaddr_resolvable" "= 1234567890"
|
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 "print file_extern_locaddr_unresolvable" "= 1234567890"
|
||||||
gdb_test "ptype file_extern_locaddr_unresolvable" "type = int"
|
gdb_test "ptype file_extern_locaddr_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_extern_locempty_resolvable" "= <value optimized out>"
|
gdb_test "print file_extern_locempty_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_extern_locempty_resolvable" "type = int"
|
gdb_test "ptype file_extern_locempty_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_extern_locempty_unresolvable" "= <value optimized out>"
|
gdb_test "print file_extern_locempty_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype file_extern_locempty_unresolvable" "type = int"
|
gdb_test "ptype file_extern_locempty_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print file_extern_locno_resolvable" "= 1234567890"
|
gdb_test "print file_extern_locno_resolvable" "= 1234567890"
|
||||||
@ -76,7 +76,7 @@ proc file_symbols {type} {
|
|||||||
# `print file_extern_locno_unresolvable' currently prints
|
# `print file_extern_locno_unresolvable' currently prints
|
||||||
# Address of symbol "file_extern_locno_unresolvable" is unknown.
|
# Address of symbol "file_extern_locno_unresolvable" is unknown.
|
||||||
# As DW_AT_declaration is not present in this DIE
|
# As DW_AT_declaration is not present in this DIE
|
||||||
# it should print <value optimized out>. As usefulness of such DIE is not
|
# it should print <optimized out>. As usefulness of such DIE is not
|
||||||
# clear its resolution is not being tested.
|
# clear its resolution is not being tested.
|
||||||
|
|
||||||
set pf_prefix $old_prefix
|
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 "print main_local_locaddr_unresolvable" "= 1234567890"
|
||||||
gdb_test "ptype main_local_locaddr_unresolvable" "type = int"
|
gdb_test "ptype main_local_locaddr_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_local_locempty_resolvable" "= <value optimized out>"
|
gdb_test "print main_local_locempty_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_local_locempty_resolvable" "type = int"
|
gdb_test "ptype main_local_locempty_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_local_locempty_unresolvable" "= <value optimized out>"
|
gdb_test "print main_local_locempty_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_local_locempty_unresolvable" "type = int"
|
gdb_test "ptype main_local_locempty_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_local_locno_resolvable" "= <value optimized out>"
|
gdb_test "print main_local_locno_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_local_locno_resolvable" "type = int"
|
gdb_test "ptype main_local_locno_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_local_locno_unresolvable" "= <value optimized out>"
|
gdb_test "print main_local_locno_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_local_locno_unresolvable" "type = int"
|
gdb_test "ptype main_local_locno_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_extern_locaddr_resolvable" "= 1234567890"
|
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 "print main_extern_locaddr_unresolvable" "= 1234567890"
|
||||||
gdb_test "ptype main_extern_locaddr_unresolvable" "type = int"
|
gdb_test "ptype main_extern_locaddr_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_extern_locempty_resolvable" "= <value optimized out>"
|
gdb_test "print main_extern_locempty_resolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_extern_locempty_resolvable" "type = int"
|
gdb_test "ptype main_extern_locempty_resolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_extern_locempty_unresolvable" "= <value optimized out>"
|
gdb_test "print main_extern_locempty_unresolvable" "= <optimized out>"
|
||||||
gdb_test "ptype main_extern_locempty_unresolvable" "type = int"
|
gdb_test "ptype main_extern_locempty_unresolvable" "type = int"
|
||||||
|
|
||||||
gdb_test "print main_extern_locno_resolvable" "= 1234567890"
|
gdb_test "print main_extern_locno_resolvable" "= 1234567890"
|
||||||
|
@ -82,7 +82,7 @@ proc pieces_test_f6 {} {
|
|||||||
"set f6 breakpoint for pieces"
|
"set f6 breakpoint for pieces"
|
||||||
gdb_continue_to_breakpoint "continue to f6 breakpoint for pieces"
|
gdb_continue_to_breakpoint "continue to f6 breakpoint for pieces"
|
||||||
gdb_test "print a" \
|
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"
|
"print a with optimized out piece"
|
||||||
# Note: no warning for this case.
|
# Note: no warning for this case.
|
||||||
gdb_test_multiple "print a.i" \
|
gdb_test_multiple "print a.i" \
|
||||||
|
@ -53,12 +53,12 @@ if { ![runto start_sequence] } then {
|
|||||||
gdb_test "frame 1" "#1.*in gen_movsd.*" "Backtracing"
|
gdb_test "frame 1" "#1.*in gen_movsd.*" "Backtracing"
|
||||||
|
|
||||||
gdb_test_multiple "print operand0" "print operand0" {
|
gdb_test_multiple "print operand0" "print operand0" {
|
||||||
-re "\\\$$decimal = <value optimized out>\r\n$gdb_prompt $" { pass "print operand0"}
|
-re "\\\$$decimal = <optimized out>\r\n$gdb_prompt $" { pass "print operand0"}
|
||||||
-re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand0" "13" "print operand0" }
|
-re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand0" "13" "print operand0" }
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_test_multiple "print operand1" "print operand1" {
|
gdb_test_multiple "print operand1" "print operand1" {
|
||||||
-re "\\\$$decimal = <value optimized out>\r\n$gdb_prompt $" { pass "print operand1"}
|
-re "\\\$$decimal = <optimized out>\r\n$gdb_prompt $" { pass "print operand1"}
|
||||||
-re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand1" "14" "print operand1" }
|
-re "$hex\r\n$gdb_prompt $" { gdb_test "print *operand1" "14" "print operand1" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ if { ! $no_frames } {
|
|||||||
-re "arg1 = $decimal\r\n$gdb_prompt $" {
|
-re "arg1 = $decimal\r\n$gdb_prompt $" {
|
||||||
pass $msg
|
pass $msg
|
||||||
}
|
}
|
||||||
-re "arg1 = <value optimized out>\r\n$gdb_prompt $" {
|
-re "arg1 = <optimized out>\r\n$gdb_prompt $" {
|
||||||
# GCC 4.3 and later lose location information for arg1. GCC 4.2 is OK.
|
# 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-*"]} {
|
if { [test_compiler_info "gcc-4-3-*"] || [test_compiler_info "gcc-4-4-*"]} {
|
||||||
setup_xfail *-*-*
|
setup_xfail *-*-*
|
||||||
@ -101,7 +101,7 @@ if { ! $no_frames } {
|
|||||||
-re "arg1 = $decimal\r\n$gdb_prompt $" {
|
-re "arg1 = $decimal\r\n$gdb_prompt $" {
|
||||||
pass $msg
|
pass $msg
|
||||||
}
|
}
|
||||||
-re "arg1 = <value optimized out>\r\n$gdb_prompt $" {
|
-re "arg1 = <optimized out>\r\n$gdb_prompt $" {
|
||||||
# GCC 4.3 and later lose location information for arg1. GCC 4.2 is OK.
|
# 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-*"]} {
|
if { [test_compiler_info "gcc-4-3-*"] || [test_compiler_info "gcc-4-4-*"]} {
|
||||||
setup_xfail *-*-*
|
setup_xfail *-*-*
|
||||||
|
@ -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
|
# * 2 LWP 4466 start (arg=0x0) at fork-child-threads.c:28
|
||||||
# Correct:
|
# Correct:
|
||||||
# * 3 Thread 0x40a00950 (LWP 5553) start (arg=0x0) at ../.././gdb/testsuite/gdb.threads/fork-child-threads.c:28
|
# * 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=<value optimized out>, thread_return=<value optimized out>) at pthread_join.c:89
|
# 2 Thread 0x2aaaaaac3000 (LWP 5552) 0x00000031674076dd in pthread_join (threadid=<optimized out>, thread_return=<optimized out>) at pthread_join.c:89
|
||||||
|
|
||||||
gdb_test "info threads" " Thread .* Thread .*" "two threads found"
|
gdb_test "info threads" " Thread .* Thread .*" "two threads found"
|
||||||
|
@ -272,7 +272,7 @@ valprint_check_validity (struct ui_file *stream,
|
|||||||
if (! value_bits_valid (val, TARGET_CHAR_BIT * offset,
|
if (! value_bits_valid (val, TARGET_CHAR_BIT * offset,
|
||||||
TARGET_CHAR_BIT * TYPE_LENGTH (type)))
|
TARGET_CHAR_BIT * TYPE_LENGTH (type)))
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, _("<value optimized out>"));
|
val_print_optimized_out (stream);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,6 +287,12 @@ valprint_check_validity (struct ui_file *stream,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
val_print_optimized_out (struct ui_file *stream)
|
||||||
|
{
|
||||||
|
fprintf_filtered (stream, _("<optimized out>"));
|
||||||
|
}
|
||||||
|
|
||||||
/* Print using the given LANGUAGE the data of type TYPE located at VALADDR
|
/* Print using the given LANGUAGE the data of type TYPE located at VALADDR
|
||||||
(within GDB), which came from the inferior at address ADDRESS, onto
|
(within GDB), which came from the inferior at address ADDRESS, onto
|
||||||
stdio stream STREAM according to OPTIONS.
|
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))
|
if (value_entirely_optimized_out (val))
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, _("<value optimized out>"));
|
val_print_optimized_out (stream);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
enum bfd_endian byte_order, gdb_byte **buffer,
|
||||||
int *bytes_read);
|
int *bytes_read);
|
||||||
|
|
||||||
|
extern void val_print_optimized_out (struct ui_file *stream);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user