Alessandro Arzilli
b65882a588
proc: ignore DW_TAG_inlined_subroutine entries without abstract origin ( #1637 )
...
GCC produces DW_TAG_inlined_subroutine entries without a
DW_AT_abstract_origin attribute.
From the bug report:
<1><1fe6c7c>: Abbrev Number: 41 (DW_TAG_subprogram)
<1fe6c7d> DW_AT_external : 1
<1fe6c7d> DW_AT_name : (indirect string, offset: 0x485814): MultiGetImpl
(omissis)
<2><1fe6c9e>: Abbrev Number: 65 (DW_TAG_inlined_subroutine)
<1fe6c9f> DW_AT_low_pc : 0x311023a
<1fe6ca7> DW_AT_high_pc : 0x5
<1fe6caf> DW_AT_call_file : 10
<1fe6cb0> DW_AT_call_line : 1690
<2><1fe6cb2>: Abbrev Number: 20 (DW_TAG_inlined_subroutine)
<1fe6cb3> DW_AT_abstract_origin: <0x1ffb534>
<1fe6cb7> DW_AT_entry_pc : 0x311023f
<1fe6cbf> DW_AT_ranges : 0xe9bf20
<1fe6cc3> DW_AT_call_file : 10
<1fe6cc4> DW_AT_call_line : 1690
Inlined subroutine at 1fe6c9e doesn't have abstract origin, a name or a
declaration location. It's unclear whether this is in-standard and what
it even means.
Let's ignore it.
Fixes #1636
2019-07-26 11:24:35 -07:00
Alessandro Arzilli
a7c2d837d5
proc: add LocationCover method to BinaryInfo ( #1573 )
...
Also fixes findCompileUnitForOffset which was broken in some edge cases
(when looking up an offset inside the last child of the compilation
unit) which don't happen in normal executables (we only look up types, and those
are always direct childs of compile units).
2019-06-24 08:02:14 -07:00
Derek Parker
4c9a72e486
*: Update import name to github.com/go-delve/delve
...
The repository is being switched from the personal account
github.com/derekparker/delve to the organization account
github.com/go-delve/delve. This patch updates imports and docs, while
preserving things which should not be changed such as my name in the
CHANGELOG and in TODO comments.
2019-01-04 19:43:13 +01:00
aarzilli
53957e9f4d
proc: do not panic if we can't satisfy a composite location for a slice var
...
The fix in 7f53117 for Issue #1416 had a bug, fix it and add a test.
Fixes #1419
2018-11-26 11:05:00 -08:00
aarzilli
99cad1044b
pkg/proc, pkg/dwarf/op: support DW_OP_piece, DW_OP_regX, DW_OP_fbreg
...
These are emitted by C compilers but also by the current development
version of the go compiler with the dwarflocationlists flag.
2017-11-21 11:51:02 -08:00
aarzilli
f098915192
proc/tests: testing apparatus for complex location expressions
2017-11-21 11:51:02 -08:00