[Issue 4149] New: refs displayed as pointers in gdb

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun May 2 13:36:59 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4149

           Summary: refs displayed as pointers in gdb
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: braddr at puremagic.com
            Blocks: 4044


--- Comment #0 from Brad Roberts <braddr at puremagic.com> 2010-05-02 13:36:57 PDT ---
(gdb) list inline.d:1
1  module test.d;
2
3  void foo(ref int x)
4  {
5      ++x;
6  }
7
8  void bar()
9  {
10     int x = 0;
11
12     foo(x);
13 }
14
15 void main()
16 {
17     bar();
18 }

(gdb) break 5
Breakpoint 1 at 0x804910d: file inline.d, line 5.
(gdb) run
Breakpoint 1, test.d.foo (x=0xbffff62c) at inline.d:5
5      ++x;
(gdb) print x
$1 = (int *) 0xbffff62c

Assuming I'm understanding the dwarf records correctly, foo's argument:
 <2><a2>: Abbrev Number: 5 (DW_TAG_formal_parameter)
    <a3>   DW_AT_name        : x
    <a5>   DW_AT_type        : <0x69>
    <a9>   DW_AT_location    : 2 byte block: 91 7c    (DW_OP_fbreg: -4)

And type 0x69:
 <1><69>: Abbrev Number: 4 (DW_TAG_pointer_type)
    <6a>   DW_AT_byte_size   : 4
    <6b>   DW_AT_type        : <0x62>


Dwarf formally supports a reference type according to the spec.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list