[Issue 18527] lldb: `frame variable` works with ldc2, not with dmd

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Feb 19 13:19:11 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=18527

--- Comment #5 from Jacob Carlborg <doob at me.com> ---
Since it might be a bit difficult to see the exact changes due to different
formatting and different order I listed the differences here:

DW_TAG_compile_unit:
    DMD extra:
        DW_AT_entry_pc
        DW_AT_ranges

    LDC extra:
        DW_AT_APPLE_major_runtime_vers
        DW_AT_high_pc

DW_TAG_imported_module:
    LDC extra:
        whole tag

DW_TAG_subprogram("_D4main3fooFiZv"):
    DMD extra:
        DW_AT_MIPS_linkage_name
        DW_AT_sibling

        below "DW_AT_frame_base"
            [0x00000000,  0x00000000): DW_OP_breg7 RSP+8
            [0x00000000,  0x00000000): DW_OP_breg7 RSP+16
            [0x00000000,  0x00000000): DW_OP_breg6 RBP+16)

    LDC extra:
        DW_AT_linkage_name
        DW_AT_external

    diff:
        DW_AT_frame_base:
            DMD: (0x00000000)
            LDC: (DW_OP_reg6 RBP)
        DW_AT_name:
            DMD: ("main.foo")
            LDC: ("foo")

DW_TAG_formal_parameter("a"):
    DMD extra:
        DW_AT_artificial

    LDC extra:
        DW_AT_decl_file
        DW_AT_decl_line

    diff:
        DW_AT_location:
            DMD: (DW_OP_fbreg -24)
            LDC: (DW_OP_fbreg -4)

DW_TAG_formal_parameter("b"):
    DMD extra:
        DW_AT_artificial

    LDC extra:
        DW_AT_decl_file
        DW_AT_decl_line

    diff:
        DW_AT_location:
            DMD: (DW_OP_fbreg -32)
            LDC: (DW_OP_fbreg -8)

DW_TAG_formal_parameter("c"):
    DMD extra:
        DW_AT_artificial

    LDC extra:
        DW_AT_decl_file
        DW_AT_decl_line

    diff:
        DW_AT_location:
            DMD: (DW_OP_fbreg -28)
            LDC: (DW_OP_fbreg -12)

DW_TAG_subprogram("_Dmain"):
    diff:
        DW_AT_external:
            DMD: (0x00000000)
            LDC: (true)

        DW_AT_frame_base:
            DMD: (0x00000000)
            LDC: (DW_OP_reg6 RBP)

DW_TAG_subprogram("main")
    DMD extra:
        DW_AT_MIPS_linkage_name
        DW_AT_sibling

    LDC extra:
        DW_AT_linkage_name

    diff:
        DW_AT_external:
            DMD: (0x00000000)
            LDC: (true)

        DW_AT_frame_base:
            DMD: (0x00000000)
            LDC: (DW_OP_reg6 RBP)

        DW_AT_name
            DMD: ("main._d_cmain!().main")
            LDC: ("main")

DW_TAG_formal_parameter("argc"):
    DMD extra:
        DW_AT_artificial

    LDC extra:
        DW_AT_decl_file
        DW_AT_decl_line

    diff:
        DW_AT_location:
            DMD: (DW_OP_fbreg -32)
            LDC: (DW_OP_fbreg -4)

DW_TAG_formal_parameter("argv"):
    DMD extra:
        DW_AT_artificial

    LDC extra:
        DW_AT_decl_file
        DW_AT_decl_line

    diff:
        DW_AT_location:
            DMD: (DW_OP_fbreg -24)
            LDC: (DW_OP_fbreg -16)

DW_TAG_module:
    LDC extra:
        whole tag

DW_TAG_pointer_type("char**"):
    LDC extra:
        DW_AT_name      ("char**")

DW_TAG_pointer_type("char*"):
    LDC extra:
        DW_AT_name      ("char*")

DW_TAG_base_type("char")
    diff:
        DW_AT_encoding:
            DMD: DW_ATE_unsigned_char
            LDC: DW_ATE_UTF

--


More information about the Digitalmars-d-bugs mailing list