public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "vries at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug symtab/26390] gdb.fortran/mixed-lang-stack.exp: error reading variable in backtrace
Date: Fri, 14 Aug 2020 15:12:49 +0000	[thread overview]
Message-ID: <bug-26390-4717-9websK9dzV@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-26390-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=26390

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
At this point:
...
(gdb) bt
#0  dwarf2_evaluate_property (prop=0x220ddf0, frame=0,
addr_stack=0x7fffffffc9b0, 
    value=0x7fffffffc820, push_initial_value=false)
    at /home/vries/gdb_versions/devel/src/gdb/dwarf2/loc.c:2584
#1  0x00000000006bfa79 in resolve_dynamic_range (dyn_range_type=0x220dd60, 
    addr_stack=0x7fffffffc9b0) at
/home/vries/gdb_versions/devel/src/gdb/gdbtypes.c:2099
#2  0x00000000006bfd25 in resolve_dynamic_array_or_string (type=0x2220f10, 
    addr_stack=0x7fffffffc9b0) at
/home/vries/gdb_versions/devel/src/gdb/gdbtypes.c:2167
#3  0x00000000006c15b6 in resolve_dynamic_type_internal (type=0x220de20, 
    addr_stack=0x7fffffffc9b0, top_level=1)
    at /home/vries/gdb_versions/devel/src/gdb/gdbtypes.c:2590
#4  0x00000000006c1799 in resolve_dynamic_type (type=0x220de20, valaddr=...,
addr=4199637)
    at /home/vries/gdb_versions/devel/src/gdb/gdbtypes.c:2635
#5  0x0000000000aa4f79 in value_from_contents_and_address (type=0x220de20,
valaddr=0x0, 
    address=4199637) at /home/vries/gdb_versions/devel/src/gdb/value.c:3494
#6  0x0000000000a8d546 in get_value_at (type=0x220de20, addr=4199637, lazy=1)
    at /home/vries/gdb_versions/devel/src/gdb/valops.c:899
#7  0x0000000000a8d5b4 in value_at_lazy (type=0x220de20, addr=4199637)
    at /home/vries/gdb_versions/devel/src/gdb/valops.c:936
#8  0x0000000000603f02 in dwarf2_evaluate_loc_desc_full (type=0x220de20,
frame=0xa6cfcc0, 
    data=0x21f9dca "\221\230\177\006\tg", size=4, per_cu=0x21f20c0,
per_objfile=0x1f527d0, 
    subobj_type=0x220de20, subobj_byte_offset=0)
    at /home/vries/gdb_versions/devel/src/gdb/dwarf2/loc.c:2364
#9  0x00000000006042b9 in dwarf2_evaluate_loc_desc (type=0x220de20,
frame=0xa6cfcc0, 
    data=0x21f9dca "\221\230\177\006\tg", size=4, per_cu=0x21f20c0,
per_objfile=0x1f527d0)
    at /home/vries/gdb_versions/devel/src/gdb/dwarf2/loc.c:2444
#10 0x00000000006067d5 in locexpr_read_variable (symbol=0x220e200,
frame=0xa6cfcc0)
    at /home/vries/gdb_versions/devel/src/gdb/dwarf2/loc.c:3688
#11 0x000000000069b777 in language_defn::read_var_value (this=0x1582180
<f_language_defn>, 
    var=0x220e200, var_block=0x0, frame=0xa6cfcc0)
    at /home/vries/gdb_versions/devel/src/gdb/findvar.c:618
#12 0x000000000069c27b in read_var_value (var=0x220e200, var_block=0x0,
frame=0xa6cfcc0)
    at /home/vries/gdb_versions/devel/src/gdb/findvar.c:822
#13 0x000000000099129d in read_frame_arg (fp_opts=..., sym=0x220e200,
frame=0xa6cfcc0, 
    argp=0x7fffffffcf10, entryargp=0x7fffffffcf30)
    at /home/vries/gdb_versions/devel/src/gdb/stack.c:542
#14 0x0000000000991e74 in print_frame_args (fp_opts=..., func=0x220df40,
frame=0xa6cfcc0, 
    num=-1, stream=0x21c2fc0) at
/home/vries/gdb_versions/devel/src/gdb/stack.c:884
#15 0x0000000000993085 in print_frame (fp_opts=..., frame=0xa6cfcc0,
print_level=1, 
    print_what=LOCATION, print_args=1, sal=...)
    at /home/vries/gdb_versions/devel/src/gdb/stack.c:1388
#16 0x0000000000992741 in print_frame_info (fp_opts=..., frame=0xa6cfcc0,
print_level=1, 
    print_what=LOCATION, print_args=1, set_current_sal=0)
    at /home/vries/gdb_versions/devel/src/gdb/stack.c:1113
#17 0x000000000099469a in backtrace_command_1 (fp_opts=..., bt_opts=...,
count_exp=0x0, 
    from_tty=0) at /home/vries/gdb_versions/devel/src/gdb/stack.c:2079
#18 0x0000000000994aca in backtrace_command (arg=0x0, from_tty=0)
    at /home/vries/gdb_versions/devel/src/gdb/stack.c:2198
#19 0x0000000000545eb9 in do_const_cfunc (c=0x1e9a430, args=0x0, from_tty=0)
    at /home/vries/gdb_versions/devel/src/gdb/cli/cli-decode.c:95
#20 0x000000000054958b in cmd_func (cmd=0x1e9a430, args=0x0, from_tty=0)
    at /home/vries/gdb_versions/devel/src/gdb/cli/cli-decode.c:2181
#21 0x0000000000a0c3db in execute_command (p=0x7fffffffe1b4 "", from_tty=0)
    at /home/vries/gdb_versions/devel/src/gdb/top.c:668
#22 0x00000000007998d4 in catch_command_errors (
    command=0xa0be66 <execute_command(char const*, int)>, arg=0x7fffffffe1b2
"bt", 
    from_tty=0) at /home/vries/gdb_versions/devel/src/gdb/main.c:457
#23 0x000000000079acb2 in captured_main_1 (context=0x7fffffffdaa0)
    at /home/vries/gdb_versions/devel/src/gdb/main.c:1218
#24 0x000000000079aea7 in captured_main (data=0x7fffffffdaa0)
    at /home/vries/gdb_versions/devel/src/gdb/main.c:1243
#25 0x000000000079af12 in gdb_main (args=0x7fffffffdaa0)
    at /home/vries/gdb_versions/devel/src/gdb/main.c:1268
#26 0x0000000000417efe in main (argc=15, argv=0x7fffffffdba8)
    at /home/vries/gdb_versions/devel/src/gdb/gdb.c:32
...
we lost the frame context, and use the current frame at level 0:
...
2581      if (frame == NULL && has_stack_frames ())
(gdb) 
2582        frame = get_selected_frame (NULL);
(gdb) 
2584      switch (prop->kind ())
(gdb) p frame
$19 = (frame_info *) 0x21fcf80
(gdb) p *frame
$20 = {level = 0, pspace = 0x1ec45d0, aspace = 0x1ec7630, prologue_cache =
0x21fd040, 
  unwind = 0xd964a0 <dwarf2_frame_unwind>, prev_arch = {p = true, arch =
0x2233ae0}, 
  prev_pc = {status = CC_VALUE, masked = false, value = 4199219}, prev_func = {
    addr = 4199210, status = CC_VALUE}, this_id = {p = true, value = {
      stack_addr = 140737488344368, code_addr = 4198073, special_addr = 0, 
      stack_status = FID_STACK_VALID, code_addr_p = 1, special_addr_p = 0, 
      artificial_depth = 0}}, base = 0x0, base_cache = 0x0, next = 0x21fceb0,
prev_p = true, 
  prev = 0xa6c0a50, stop_reason = UNWIND_NO_REASON, stop_string = 0x0}
...
while a bit up in the backtrace, we have the frame in which we actually want to
do the evaluation, at level 7:
....
(gdb) 
#8  0x0000000000603f02 in dwarf2_evaluate_loc_desc_full (type=0x220de20,
frame=0xa6cfcc0, 
    data=0x21f9dca "\221\230\177\006\tg", size=4, per_cu=0x21f20c0,
per_objfile=0x1f527d0, 
    subobj_type=0x220de20, subobj_byte_offset=0)
    at /home/vries/gdb_versions/devel/src/gdb/dwarf2/loc.c:2364
2364                retval = value_at_lazy (subobj_type,
(gdb) p *frame
$21 = {level = 7, pspace = 0x1ec45d0, aspace = 0x1ec7630, prologue_cache =
0xa6cfd80, 
  unwind = 0xd964a0 <dwarf2_frame_unwind>, prev_arch = {p = true, arch =
0x2233ae0}, 
  prev_pc = {status = CC_VALUE, masked = false, value = 4198289}, prev_func = {
    addr = 4198183, status = CC_VALUE}, this_id = {p = true, value = {
      stack_addr = 140737488345360, code_addr = 4198296, special_addr = 0, 
      stack_status = FID_STACK_VALID, code_addr_p = 1, special_addr_p = 0, 
      artificial_depth = 0}}, base = 0x0, base_cache = 0x0, next = 0xa6cc710,
prev_p = true, 
  prev = 0xa6d4260, stop_reason = UNWIND_NO_REASON, stop_string = 0x0}
...

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2020-08-14 15:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-14 11:48 [Bug symtab/26390] New: " vries at gcc dot gnu.org
2020-08-14 12:03 ` [Bug symtab/26390] " vries at gcc dot gnu.org
2020-08-14 12:49 ` vries at gcc dot gnu.org
2020-08-14 14:52 ` vries at gcc dot gnu.org
2020-08-14 15:12 ` vries at gcc dot gnu.org [this message]
2020-08-14 15:15 ` vries at gcc dot gnu.org
2020-08-14 15:38 ` vries at gcc dot gnu.org
2020-08-14 15:39 ` vries at gcc dot gnu.org
2020-08-15  5:48 ` [Bug backtrace/26390] " vries at gcc dot gnu.org
2020-08-15  5:55 ` vries at gcc dot gnu.org
2020-08-15  8:19 ` cvs-commit at gcc dot gnu.org
2020-08-15  8:27 ` vries at gcc dot gnu.org
2020-08-15  8:28 ` vries at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-26390-4717-9websK9dzV@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).