Mirror of the gdb mailing list
 help / color / mirror / Atom feed
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 --]

  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