From: David Lecomber <david@streamline-computing.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: patches <gdb-patches@sources.redhat.com>
Subject: Re: [PATCH/RFA] buildsym.c: extend parent block bounds if child block exceed limit
Date: Tue, 14 Sep 2004 21:21:00 -0000 [thread overview]
Message-ID: <1095196949.5337.55.camel@localhost> (raw)
In-Reply-To: <20040914210452.GA19646@nevyn.them.org>
[-- Attachment #1: Type: text/plain, Size: 660 bytes --]
Hi Daniel,
It's attached,
D.
On Tue, 2004-09-14 at 22:04, Daniel Jacobowitz wrote:
> On Fri, Aug 06, 2004 at 10:11:30PM +0100, David Lecomber wrote:
> > All,
> >
> > f90 compiled with nested subroutines using Intel's compiler is handled
> > badly by GDB. Line numbers are not found by backtrace.
> >
> > Although GDB is capable of reading out all the dwarf2 line information
> > inside this routine correctly, it can't look up an address to get a line
> > number when inside a block. The cause is that the containing function's
> > block does not contain the contained function's address.
>
> Could you post the output of readelf -wil on this binary?
[-- Attachment #2: nest.dwarf --]
[-- Type: text/plain, Size: 4646 bytes --]
The section .debug_info contains:
Compilation Unit @ 0:
Length: 239
Version: 2
Abbrev Offset: 0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_comp_dir : /users/david
DW_AT_language : 8 (Fortran 90)
DW_AT_name : nest.f90
DW_AT_producer : Intel Fortran 8.0-4012
DW_AT_stmt_list : 0
<1><3e>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_byte_size : 0
DW_AT_encoding : 5 (signed)
DW_AT_name : void
<1><46>: Abbrev Number: 3 (DW_TAG_subprogram)
DW_AT_decl_line : 1
DW_AT_decl_column : 8
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_calling_convention: 2 (program)
DW_AT_name : nest
DW_AT_type : <3e>
DW_AT_prototyped : 0
DW_AT_frame_base : 2 byte block: 75 48 (DW_OP_breg5: -56; )
DW_AT_high_pc : 0x8049dfe 134520318
DW_AT_low_pc : 0x8049db4 134520244
DW_AT_external : 1
<2><62>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_decl_line : 9
DW_AT_decl_column : 2
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_name : time
DW_AT_type : <d6>
DW_AT_location : 2 byte block: 91 8 (DW_OP_fbreg: 8; )
DW_AT_external : 0
DW_AT_start_scope : 0x8049df1 134520305
<2><78>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_decl_line : 4
DW_AT_decl_column : 16
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_name : i
DW_AT_type : <e1>
DW_AT_location : 2 byte block: 91 0 (DW_OP_fbreg: 0; )
DW_AT_external : 0
DW_AT_start_scope : 0x8049dd1 134520273
<2><8b>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_decl_line : 3
DW_AT_decl_column : 16
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_name : j
DW_AT_type : <e1>
DW_AT_location : 2 byte block: 91 4 (DW_OP_fbreg: 4; )
DW_AT_external : 0
DW_AT_start_scope : 0x8049dd1 134520273
<2><9e>: Abbrev Number: 5 (DW_TAG_subprogram)
DW_AT_decl_line : 13
DW_AT_decl_column : 14
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_name : second
DW_AT_type : <d6>
DW_AT_prototyped : 0
DW_AT_static_link : 3 byte block: 75 0 6
DW_AT_high_pc : 0x8049e12 134520338
DW_AT_low_pc : 0x8049dfe 134520318
DW_AT_external : 0
<3><bc>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_decl_line : 13
DW_AT_decl_column : 14
DW_AT_decl_file : 1
DW_AT_accessibility: 1 (public)
DW_AT_name : second
DW_AT_type : <d6>
DW_AT_location : 2 byte block: 75 5c (DW_OP_breg5: -36; )
DW_AT_external : 0
DW_AT_start_scope : 0x8049dfe 134520318
<1><d6>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_byte_size : 4
DW_AT_encoding : 4 (float)
DW_AT_name : REAL(4)
<1><e1>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
DW_AT_name : INTEGER(4)
Dump of debug contents of section .debug_line:
Length: 74
DWARF Version: 2
Prologue Length: 33
Minimum Instruction Length: 1
Initial value of 'is_stmt': 0
Line Base: -1
Line Range: 4
Opcode Base: 10
Opcodes:
Opcode 1 has 0 args
Opcode 2 has 1 args
Opcode 3 has 1 args
Opcode 4 has 1 args
Opcode 5 has 1 args
Opcode 6 has 0 args
Opcode 7 has 0 args
Opcode 8 has 0 args
Opcode 9 has 1 args
The Directory Table is empty.
The File Name Table:
Entry Dir Time Size Name
1 0 1095196755 219 nest.f90
Line Number Statements:
Extended opcode 2: set Address to 0x8049db4
Copy
Advance PC by 29 to 8049dd1
Advance Line by 4 to 5
Copy
Special opcode 30: advance Address by 7 to 0x8049dd8 and Line by 1 to 6
Special opcode 36: advance Address by 9 to 0x8049de1 and Line by -1 to 5
Special opcode 14: advance Address by 3 to 0x8049de4 and Line by 1 to 6
Advance PC by 5 to 8049de9
Advance Line by 3 to 9
Copy
Special opcode 59: advance Address by 14 to 0x8049df7 and Line by 2 to 11
Special opcode 31: advance Address by 7 to 0x8049dfe and Line by 2 to 13
Special opcode 26: advance Address by 6 to 0x8049e04 and Line by 1 to 14
Special opcode 38: advance Address by 9 to 0x8049e0d and Line by 1 to 15
Extended opcode 2: set Address to 0x8049e12
Extended opcode 1: End of Sequence
next prev parent reply other threads:[~2004-09-14 21:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-06 21:10 David Lecomber
2004-09-14 20:00 ` Andrew Cagney
2004-09-14 20:57 ` David Lecomber
2004-09-14 21:01 ` Michael Chastain
2004-09-14 21:04 ` Daniel Jacobowitz
2004-09-14 21:21 ` David Lecomber [this message]
2004-09-20 21:30 ` Jim Blandy
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=1095196949.5337.55.camel@localhost \
--to=david@streamline-computing.com \
--cc=drow@false.org \
--cc=gdb-patches@sources.redhat.com \
/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