This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Dwarf in assembler file


Hi

I use a gcc 4.1.0 on cygwin, cross compiled for ppc -> generates elf.
I use the -S to see what assembler code got generated and for this
I need the line info (.loc). I have a simple file when compiled gives
more than one symbol for constructor or destructor. The output is
like this:

	.globl _ZN17_TASK_CLASS_NAME_D0Ev
	.type	_ZN17_TASK_CLASS_NAME_D0Ev, @function
_ZN17_TASK_CLASS_NAME_D0Ev:
.LFB601:
	.loc 3 120 0
	stwu 1,-24(1)	 #,,
...(snip) ...
	blr	 #
.LFE601:
	.size	_ZN17_TASK_CLASS_NAME_D0Ev, .-_ZN17_TASK_CLASS_NAME_D0Ev
	.align 2
	.globl _ZN17_TASK_CLASS_NAME_D1Ev
	.type	_ZN17_TASK_CLASS_NAME_D1Ev, @function
_ZN17_TASK_CLASS_NAME_D1Ev:
.LFB600:
	.loc 3 120 0
	stwu 1,-24(1)	 #,,
...(snip) ...
	blr	 #
.LFE600:
	.size	_ZN17_TASK_CLASS_NAME_D1Ev, .-_ZN17_TASK_CLASS_NAME_D1Ev
	.align 2
	.globl _ZN17_TASK_CLASS_NAME_D2Ev
	.type	_ZN17_TASK_CLASS_NAME_D2Ev, @function
_ZN17_TASK_CLASS_NAME_D2Ev:
.LFB599:
	.loc 3 120 0
	stwu 1,-24(1)	 #,,
...(snip) ...
	blr	 #
.LFE599:
	.size	_ZN17_TASK_CLASS_NAME_D2Ev, .-_ZN17_TASK_CLASS_NAME_D2Ev

Why are there three symbols _ZN17_TASK_CLASS_NAME_D{0,1,2}Ev? They're all
placed on the same source line .loc 3 120 0, contain exactly the same code. So what
is the meaning/difference between these three? I also get two symbols for the constructor,
also only differing in the last number.

How does the assembler know that it shouldn't do three times the same code but that
this is three times the same?

Thanks

bye   Fabi



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]