From: Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: gdb@sources.redhat.com
Subject: Re: Problem with location lists and variables on stack
Date: Wed, 01 Oct 2003 15:44:00 -0000 [thread overview]
Message-ID: <20031001154415.GA15387@artax.karlin.mff.cuni.cz> (raw)
In-Reply-To: <20031001144937.GA4613@nevyn.them.org>
[-- Attachment #1: Type: text/plain, Size: 1522 bytes --]
> > Let the local variables and (some) arguments be addressed using stack pointer,
> > for example x86-64 architecture with variables addressed using %rsp.
> > The address emitted for variables located on stack by my new patch is always
> > DW_OP_fbreg + constant.
> >
> > When I was testing the emitted debug info with mainline GDB I found that
> > GDB probably does not adjust addresses of variables when stack pointer changes
> > (like because of "pushq" instruction) if using location lists.
> > I think GDB should adjust the address of %rsp addressed variables according to
> > change of %rsp (probably DWARF2 sais so for DW_OP_fbreg). I think it is a
> > better solution than emitting new locations to location list for all variables
> > located on stack after each "push" and "pop" which would cause too large debug
> > info.
> >
> > When I looked to gdb/dwarf2loc.c I see there:
> > /* FIXME: cagney/2003-03-26: This code should be using
> > get_frame_base_address(), and then implement a dwarf2 specific
> > this_base method. */
> > Probably this is related to my problem.
>
> The FIXME is a cleanliness problem. We do evaluate DW_AT_frame_base,
> so it _ought_ to work.
>
> > I tested it on attached C file, assembler with debug info and x86-64 binary
> > is attached too.
>
> Do you suppose you could produce an x86 (ia32) testcase? I don't have
> x86-64 hardware available yet. The debug info looks right so I'd like
> to get my fingers into the problem.
Here is the x86 assembler.
Josef
[-- Attachment #2: m-i386.s --]
[-- Type: text/plain, Size: 18812 bytes --]
.file "m.c"
.section .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
.section .debug_info,"",@progbits
.Ldebug_info0:
.section .debug_line,"",@progbits
.Ldebug_line0:
.text
.Ltext0:
.p2align 4,,15
.globl func1
.type func1, @function
func1:
.LFB2:
# m.c:5
.file 1 "m.c"
.loc 1 5 0
.LVL0:
# basic block 0
pushl %ebp
.LCFI0:
pushl %edi
.LCFI1:
pushl %esi
.LCFI2:
pushl %ebx
.LCFI3:
subl $16, %esp
.LCFI4:
movl 36(%esp), %eax
movl 44(%esp), %edi
.LVL1:
movl 56(%esp), %esi
.LVL2:
movl 60(%esp), %ebx
.LVL3:
movl %eax, 12(%esp)
movl 40(%esp), %eax
movl 64(%esp), %ebp
.LVL4:
movl %eax, 8(%esp)
movl 48(%esp), %eax
.LVL5:
movl %eax, 4(%esp)
movl 52(%esp), %eax
.LVL6:
movl %eax, (%esp)
jmp .L3
.p2align 4,,7
.L6:
# basic block 1
# m.c:11
.loc 1 11 0
movl 8(%esp), %edx
.LVL7:
movl %edi, %eax
.LVL8:
movl %esi, 8(%esp)
movl 12(%esp), %ecx
.LVL9:
incl %ebp
.LVL10:
movl %ebx, 12(%esp)
movl (%esp), %edi
.LVL11:
movl %edx, %esi
.LVL12:
movl %eax, (%esp)
.LVL13:
movl %ecx, %ebx
.L3:
# basic block 2
# m.c:6
.loc 1 6 0
movl 8(%esp), %edx
movl 12(%esp), %eax
movl 4(%esp), %ecx
addl %edx, %eax
movl (%esp), %edx
addl %edi, %eax
addl %ecx, %eax
addl %edx, %eax
addl %esi, %eax
addl %ebx, %eax
# m.c:8
.loc 1 8 0
cmpl $3, %ebp
# m.c:6
.loc 1 6 0
movl %eax, vol
# m.c:8
.loc 1 8 0
jne .L6
# basic block 3
# m.c:9
.loc 1 9 0
movl vol, %eax
# m.c:12
.loc 1 12 0
addl $16, %esp
popl %ebx
.LVL14:
popl %esi
.LVL15:
popl %edi
.LVL16:
popl %ebp
.LVL17:
ret
.LFE2:
.size func1, .-func1
.p2align 4,,15
.globl main
.type main, @function
main:
.LFB3:
# m.c:16
.loc 1 16 0
# basic block 0
pushl %ebp
.LCFI5:
# m.c:17
.loc 1 17 0
xorl %eax, %eax
# m.c:16
.loc 1 16 0
movl %esp, %ebp
.LCFI6:
subl $40, %esp
.LCFI7:
# m.c:17
.loc 1 17 0
movl $20, %ecx
# m.c:16
.loc 1 16 0
andl $-16, %esp
# m.c:17
.loc 1 17 0
movl %eax, 28(%esp)
movl $70, %eax
movl %eax, 24(%esp)
movl $60, %eax
movl %eax, 20(%esp)
movl $50, %eax
movl %eax, 16(%esp)
movl $40, %eax
movl %eax, 12(%esp)
movl $30, %eax
movl %eax, 8(%esp)
movl %ecx, 4(%esp)
movl $10, (%esp)
call func1
movl %eax, vol
# m.c:18
.loc 1 18 0
movl vol, %eax
# m.c:19
.loc 1 19 0
leave
ret
.LFE3:
.size main, .-main
.comm vol,4,4
#APP
.section .debug_frame,"",@progbits
.Lframe0:
.long .LECIE0-.LSCIE0 # Length of Common Information Entry
.LSCIE0:
.long 0xffffffff # CIE Identifier Tag
.byte 0x1 # CIE Version
.ascii "\0" # CIE Augmentation
.uleb128 0x1 # CIE Code Alignment Factor
.sleb128 -4 # CIE Data Alignment Factor
.byte 0x8 # CIE RA Column
.byte 0xc # DW_CFA_def_cfa
.uleb128 0x4
.uleb128 0x4
.byte 0x88 # DW_CFA_offset, column 0x8
.uleb128 0x1
.align 4
.LECIE0:
.LSFDE0:
.long .LEFDE0-.LASFDE0 # FDE Length
.LASFDE0:
.long .Lframe0 # FDE CIE offset
.long .LFB2 # FDE initial location
.long .LFE2-.LFB2 # FDE address range
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI0-.LFB2
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x8
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI1-.LCFI0
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0xc
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI2-.LCFI1
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x10
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI3-.LCFI2
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x14
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI4-.LCFI3
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x24
.byte 0x83 # DW_CFA_offset, column 0x3
.uleb128 0x5
.byte 0x86 # DW_CFA_offset, column 0x6
.uleb128 0x4
.byte 0x87 # DW_CFA_offset, column 0x7
.uleb128 0x3
.byte 0x85 # DW_CFA_offset, column 0x5
.uleb128 0x2
.align 4
.LEFDE0:
.LSFDE2:
.long .LEFDE2-.LASFDE2 # FDE Length
.LASFDE2:
.long .Lframe0 # FDE CIE offset
.long .LFB3 # FDE initial location
.long .LFE3-.LFB3 # FDE address range
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI5-.LFB3
.byte 0xe # DW_CFA_def_cfa_offset
.uleb128 0x8
.byte 0x85 # DW_CFA_offset, column 0x5
.uleb128 0x2
.byte 0x4 # DW_CFA_advance_loc4
.long .LCFI6-.LCFI5
.byte 0xd # DW_CFA_def_cfa_register
.uleb128 0x5
.align 4
.LEFDE2:
#NO_APP
.text
.Letext0:
.section .debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
.long .LVL0-.text # Location list begin address (*.LLST0)
.long .LVL3-.text # Location list end address (*.LLST0)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 4
.long .LVL3-.text # Location list begin address (*.LLST0)
.long .LVL9-.text # Location list end address (*.LLST0)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -20
.long .LVL9-.text # Location list begin address (*.LLST0)
.long .LVL10-.text # Location list end address (*.LLST0)
.value 0x1 # Location expression size
.byte 0x51 # DW_OP_reg1
.long .LVL10-.text # Location list begin address (*.LLST0)
.long .LVL13-.text # Location list end address (*.LLST0)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -20
.long .LVL13-.text # Location list begin address (*.LLST0)
.long .LFE2-.text # Location list end address (*.LLST0)
.value 0x1 # Location expression size
.byte 0x51 # DW_OP_reg1
.long 0x0 # Location list terminator begin (*.LLST0)
.long 0x0 # Location list terminator end (*.LLST0)
.LLST1:
.long .LVL0-.text # Location list begin address (*.LLST1)
.long .LVL4-.text # Location list end address (*.LLST1)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 8
.long .LVL4-.text # Location list begin address (*.LLST1)
.long .LVL7-.text # Location list end address (*.LLST1)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -24
.long .LVL7-.text # Location list begin address (*.LLST1)
.long .LVL8-.text # Location list end address (*.LLST1)
.value 0x1 # Location expression size
.byte 0x52 # DW_OP_reg2
.long .LVL8-.text # Location list begin address (*.LLST1)
.long .LVL11-.text # Location list end address (*.LLST1)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -24
.long .LVL11-.text # Location list begin address (*.LLST1)
.long .LFE2-.text # Location list end address (*.LLST1)
.value 0x1 # Location expression size
.byte 0x52 # DW_OP_reg2
.long 0x0 # Location list terminator begin (*.LLST1)
.long 0x0 # Location list terminator end (*.LLST1)
.LLST2:
.long .LVL0-.text # Location list begin address (*.LLST2)
.long .LVL1-.text # Location list end address (*.LLST2)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 12
.long .LVL1-.text # Location list begin address (*.LLST2)
.long .LVL8-.text # Location list end address (*.LLST2)
.value 0x1 # Location expression size
.byte 0x57 # DW_OP_reg7
.long .LVL8-.text # Location list begin address (*.LLST2)
.long .LVL11-.text # Location list end address (*.LLST2)
.value 0x1 # Location expression size
.byte 0x50 # DW_OP_reg0
.long .LVL11-.text # Location list begin address (*.LLST2)
.long .LVL12-.text # Location list end address (*.LLST2)
.value 0x1 # Location expression size
.byte 0x57 # DW_OP_reg7
.long .LVL12-.text # Location list begin address (*.LLST2)
.long .LVL16-.text # Location list end address (*.LLST2)
.value 0x1 # Location expression size
.byte 0x50 # DW_OP_reg0
.long .LVL16-.text # Location list begin address (*.LLST2)
.long .LFE2-.text # Location list end address (*.LLST2)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 12
.long 0x0 # Location list terminator begin (*.LLST2)
.long 0x0 # Location list terminator end (*.LLST2)
.LLST3:
.long .LVL0-.text # Location list begin address (*.LLST3)
.long .LVL5-.text # Location list end address (*.LLST3)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 16
.long .LVL5-.text # Location list begin address (*.LLST3)
.long .LFE2-.text # Location list end address (*.LLST3)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -28
.long 0x0 # Location list terminator begin (*.LLST3)
.long 0x0 # Location list terminator end (*.LLST3)
.LLST4:
.long .LVL0-.text # Location list begin address (*.LLST4)
.long .LVL6-.text # Location list end address (*.LLST4)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 20
.long .LVL6-.text # Location list begin address (*.LLST4)
.long .LFE2-.text # Location list end address (*.LLST4)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 -32
.long 0x0 # Location list terminator begin (*.LLST4)
.long 0x0 # Location list terminator end (*.LLST4)
.LLST5:
.long .LVL0-.text # Location list begin address (*.LLST5)
.long .LVL2-.text # Location list end address (*.LLST5)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 24
.long .LVL2-.text # Location list begin address (*.LLST5)
.long .LVL15-.text # Location list end address (*.LLST5)
.value 0x1 # Location expression size
.byte 0x56 # DW_OP_reg6
.long .LVL15-.text # Location list begin address (*.LLST5)
.long .LFE2-.text # Location list end address (*.LLST5)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 24
.long 0x0 # Location list terminator begin (*.LLST5)
.long 0x0 # Location list terminator end (*.LLST5)
.LLST6:
.long .LVL0-.text # Location list begin address (*.LLST6)
.long .LVL3-.text # Location list end address (*.LLST6)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 28
.long .LVL3-.text # Location list begin address (*.LLST6)
.long .LVL14-.text # Location list end address (*.LLST6)
.value 0x1 # Location expression size
.byte 0x53 # DW_OP_reg3
.long .LVL14-.text # Location list begin address (*.LLST6)
.long .LFE2-.text # Location list end address (*.LLST6)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 28
.long 0x0 # Location list terminator begin (*.LLST6)
.long 0x0 # Location list terminator end (*.LLST6)
.LLST7:
.long .LVL0-.text # Location list begin address (*.LLST7)
.long .LVL4-.text # Location list end address (*.LLST7)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 32
.long .LVL4-.text # Location list begin address (*.LLST7)
.long .LVL17-.text # Location list end address (*.LLST7)
.value 0x1 # Location expression size
.byte 0x55 # DW_OP_reg5
.long .LVL17-.text # Location list begin address (*.LLST7)
.long .LFE2-.text # Location list end address (*.LLST7)
.value 0x2 # Location expression size
.byte 0x91 # DW_OP_fbreg
.sleb128 32
.long 0x0 # Location list terminator begin (*.LLST7)
.long 0x0 # Location list terminator end (*.LLST7)
.section .debug_info
.long 0xe3 # Length of Compilation Unit Info
.value 0x2 # DWARF version number
.long .Ldebug_abbrev0 # Offset Into Abbrev. Section
.byte 0x4 # Pointer Size (in bytes)
.uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
.long .Ldebug_line0 # DW_AT_stmt_list
.long .Letext0 # DW_AT_high_pc
.long .Ltext0 # DW_AT_low_pc
.long .LASF1 # DW_AT_producer: "GNU C 3.4 20030924 (experimental)"
.byte 0x1 # DW_AT_language
.ascii "m.c\0" # DW_AT_name
.long .LASF2 # DW_AT_comp_dir: "/local/zlomekj"
.uleb128 0x2 # (DIE (0x25) DW_TAG_subprogram)
.long 0xab # DW_AT_sibling
.byte 0x1 # DW_AT_external
.long .LASF3 # DW_AT_name: "func1"
.byte 0x1 # DW_AT_decl_file
.byte 0x5 # DW_AT_decl_line
.byte 0x1 # DW_AT_prototyped
.long 0xab # DW_AT_type
.long .LFB2 # DW_AT_low_pc
.long .LFE2 # DW_AT_high_pc
.byte 0x1 # DW_AT_frame_base
.byte 0x54 # DW_OP_reg4
.uleb128 0x3 # (DIE (0x40) DW_TAG_formal_parameter)
.ascii "a\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST0 # DW_AT_location
.uleb128 0x3 # (DIE (0x4d) DW_TAG_formal_parameter)
.ascii "b\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST1 # DW_AT_location
.uleb128 0x3 # (DIE (0x5a) DW_TAG_formal_parameter)
.ascii "c\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST2 # DW_AT_location
.uleb128 0x3 # (DIE (0x67) DW_TAG_formal_parameter)
.ascii "d\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST3 # DW_AT_location
.uleb128 0x3 # (DIE (0x74) DW_TAG_formal_parameter)
.ascii "e\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST4 # DW_AT_location
.uleb128 0x3 # (DIE (0x81) DW_TAG_formal_parameter)
.ascii "f\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST5 # DW_AT_location
.uleb128 0x3 # (DIE (0x8e) DW_TAG_formal_parameter)
.ascii "g\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xab # DW_AT_type
.long .LLST6 # DW_AT_location
.uleb128 0x3 # (DIE (0x9b) DW_TAG_formal_parameter)
.ascii "seq\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x4 # DW_AT_decl_line
.long 0xb2 # DW_AT_type
.long .LLST7 # DW_AT_location
.byte 0x0 # end of children of DIE 0x25
.uleb128 0x4 # (DIE (0xab) DW_TAG_base_type)
.long .LASF0 # DW_AT_name: "long int"
.byte 0x4 # DW_AT_byte_size
.byte 0x5 # DW_AT_encoding
.uleb128 0x5 # (DIE (0xb2) DW_TAG_base_type)
.ascii "int\0" # DW_AT_name
.byte 0x4 # DW_AT_byte_size
.byte 0x5 # DW_AT_encoding
.uleb128 0x6 # (DIE (0xb9) DW_TAG_subprogram)
.byte 0x1 # DW_AT_external
.long .LASF4 # DW_AT_name: "main"
.byte 0x1 # DW_AT_decl_file
.byte 0x10 # DW_AT_decl_line
.long 0xb2 # DW_AT_type
.long .LFB3 # DW_AT_low_pc
.long .LFE3 # DW_AT_high_pc
.byte 0x1 # DW_AT_frame_base
.byte 0x55 # DW_OP_reg5
.uleb128 0x7 # (DIE (0xcf) DW_TAG_variable)
.ascii "vol\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file
.byte 0x1 # DW_AT_decl_line
.long 0xe1 # DW_AT_type
.byte 0x1 # DW_AT_external
.byte 0x5 # DW_AT_location
.byte 0x3 # DW_OP_addr
.long vol
.uleb128 0x8 # (DIE (0xe1) DW_TAG_volatile_type)
.long 0xab # DW_AT_type
.byte 0x0 # end of children of DIE 0xb
.section .debug_abbrev
.uleb128 0x1 # (abbrev code)
.uleb128 0x11 # (TAG: DW_TAG_compile_unit)
.byte 0x1 # DW_children_yes
.uleb128 0x10 # (DW_AT_stmt_list)
.uleb128 0x6 # (DW_FORM_data4)
.uleb128 0x12 # (DW_AT_high_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x11 # (DW_AT_low_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x25 # (DW_AT_producer)
.uleb128 0xe # (DW_FORM_strp)
.uleb128 0x13 # (DW_AT_language)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3 # (DW_AT_name)
.uleb128 0x8 # (DW_FORM_string)
.uleb128 0x1b # (DW_AT_comp_dir)
.uleb128 0xe # (DW_FORM_strp)
.byte 0x0
.byte 0x0
.uleb128 0x2 # (abbrev code)
.uleb128 0x2e # (TAG: DW_TAG_subprogram)
.byte 0x1 # DW_children_yes
.uleb128 0x1 # (DW_AT_sibling)
.uleb128 0x13 # (DW_FORM_ref4)
.uleb128 0x3f # (DW_AT_external)
.uleb128 0xc # (DW_FORM_flag)
.uleb128 0x3 # (DW_AT_name)
.uleb128 0xe # (DW_FORM_strp)
.uleb128 0x3a # (DW_AT_decl_file)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3b # (DW_AT_decl_line)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x27 # (DW_AT_prototyped)
.uleb128 0xc # (DW_FORM_flag)
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
.uleb128 0x11 # (DW_AT_low_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x12 # (DW_AT_high_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x40 # (DW_AT_frame_base)
.uleb128 0xa # (DW_FORM_block1)
.byte 0x0
.byte 0x0
.uleb128 0x3 # (abbrev code)
.uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
.byte 0x0 # DW_children_no
.uleb128 0x3 # (DW_AT_name)
.uleb128 0x8 # (DW_FORM_string)
.uleb128 0x3a # (DW_AT_decl_file)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3b # (DW_AT_decl_line)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
.uleb128 0x2 # (DW_AT_location)
.uleb128 0x6 # (DW_FORM_data4)
.byte 0x0
.byte 0x0
.uleb128 0x4 # (abbrev code)
.uleb128 0x24 # (TAG: DW_TAG_base_type)
.byte 0x0 # DW_children_no
.uleb128 0x3 # (DW_AT_name)
.uleb128 0xe # (DW_FORM_strp)
.uleb128 0xb # (DW_AT_byte_size)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3e # (DW_AT_encoding)
.uleb128 0xb # (DW_FORM_data1)
.byte 0x0
.byte 0x0
.uleb128 0x5 # (abbrev code)
.uleb128 0x24 # (TAG: DW_TAG_base_type)
.byte 0x0 # DW_children_no
.uleb128 0x3 # (DW_AT_name)
.uleb128 0x8 # (DW_FORM_string)
.uleb128 0xb # (DW_AT_byte_size)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3e # (DW_AT_encoding)
.uleb128 0xb # (DW_FORM_data1)
.byte 0x0
.byte 0x0
.uleb128 0x6 # (abbrev code)
.uleb128 0x2e # (TAG: DW_TAG_subprogram)
.byte 0x0 # DW_children_no
.uleb128 0x3f # (DW_AT_external)
.uleb128 0xc # (DW_FORM_flag)
.uleb128 0x3 # (DW_AT_name)
.uleb128 0xe # (DW_FORM_strp)
.uleb128 0x3a # (DW_AT_decl_file)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3b # (DW_AT_decl_line)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
.uleb128 0x11 # (DW_AT_low_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x12 # (DW_AT_high_pc)
.uleb128 0x1 # (DW_FORM_addr)
.uleb128 0x40 # (DW_AT_frame_base)
.uleb128 0xa # (DW_FORM_block1)
.byte 0x0
.byte 0x0
.uleb128 0x7 # (abbrev code)
.uleb128 0x34 # (TAG: DW_TAG_variable)
.byte 0x0 # DW_children_no
.uleb128 0x3 # (DW_AT_name)
.uleb128 0x8 # (DW_FORM_string)
.uleb128 0x3a # (DW_AT_decl_file)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x3b # (DW_AT_decl_line)
.uleb128 0xb # (DW_FORM_data1)
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
.uleb128 0x3f # (DW_AT_external)
.uleb128 0xc # (DW_FORM_flag)
.uleb128 0x2 # (DW_AT_location)
.uleb128 0xa # (DW_FORM_block1)
.byte 0x0
.byte 0x0
.uleb128 0x8 # (abbrev code)
.uleb128 0x35 # (TAG: DW_TAG_volatile_type)
.byte 0x0 # DW_children_no
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
.byte 0x0
.byte 0x0
.byte 0x0
.section .debug_pubnames,"",@progbits
.long 0x29 # Length of Public Names Info
.value 0x2 # DWARF Version
.long .Ldebug_info0 # Offset of Compilation Unit Info
.long 0xe7 # Compilation Unit Length
.long 0x25 # DIE offset
.ascii "func1\0" # external name
.long 0xb9 # DIE offset
.ascii "main\0" # external name
.long 0xcf # DIE offset
.ascii "vol\0" # external name
.long 0x0
.section .debug_aranges,"",@progbits
.long 0x1c # Length of Address Ranges Info
.value 0x2 # DWARF Version
.long .Ldebug_info0 # Offset of Compilation Unit Info
.byte 0x4 # Size of Address
.byte 0x0 # Size of Segment Descriptor
.value 0x0 # Pad to 8 byte boundary
.value 0x0
.long .Ltext0 # Address
.long .Letext0-.Ltext0 # Length
.long 0x0
.long 0x0
.section .debug_str,"MS",@progbits,1
.LASF4:
.string "main"
.LASF3:
.string "func1"
.LASF2:
.string "/local/zlomekj"
.LASF1:
.string "GNU C 3.4 20030924 (experimental)"
.LASF0:
.string "long int"
.section .note.GNU-stack,"",@progbits
.ident "GCC: (GNU) 3.4 20030924 (experimental)"
[-- Attachment #3: m-i386 --]
[-- Type: application/octet-stream, Size: 14709 bytes --]
next prev parent reply other threads:[~2003-10-01 15:44 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-01 14:43 Josef Zlomek
2003-10-01 14:49 ` Daniel Jacobowitz
2003-10-01 15:21 ` Josef Zlomek
2003-10-01 15:44 ` Josef Zlomek [this message]
2003-10-01 15:54 ` Daniel Jacobowitz
2003-10-01 16:03 ` Josef Zlomek
2003-10-01 16:22 ` Daniel Jacobowitz
2003-10-01 17:41 ` Josef Zlomek
2003-10-01 17:44 ` Daniel Jacobowitz
2003-10-01 17:48 ` Josef Zlomek
2003-10-06 6:22 ` Richard Henderson
2003-10-06 6:40 ` Josef Zlomek
2003-10-06 13:46 ` Daniel Jacobowitz
2003-10-06 14:49 ` Daniel Berlin
2003-10-07 21:48 ` Daniel Jacobowitz
2003-10-08 5:09 ` Josef Zlomek
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=20031001154415.GA15387@artax.karlin.mff.cuni.cz \
--to=zlomj9am@artax.karlin.mff.cuni.cz \
--cc=drow@mvista.com \
--cc=gdb@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