Dwarf in assembler file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux