看了The "stabs" debug format 相关文档,觉得理解还不够,希望有人指点一二。不胜感激!!
下面这两行怎么理解?
.stabs "main:F(0,1)",36,0,0,main
.stabn 68,0,175,.LM2-main
下面是gcc -gstabs 得到的。
//////////////////////////////////////////////////////////////////////////////////
.stabs "main.c",100,0,0,.Ltext0
.text
.Ltext0:
.stabs "gcc2_compiled.",60,0,0,0
.stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
.stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
.stabs "long int:t(0,3)=r(0,3);-2147483648;2147483647;",128,0,0,0
.stabs "unsigned int:t(0,4)=r(0,4);0;-1;",128,0,0,0
.stabs "long unsigned int:t(0,5)=r(0,5);0;-1;",128,0,0,0
.stabs "long long int:t(0,6)=r(0,6);0;-1;",128,0,0,0
.stabs "long long unsigned int:t(0,7)=r(0,7);0;-1;",128,0,0,0
.stabs "short int:t(0, =r(0, ;-32768;32767;",128,0,0,0
.stabs "short unsigned int:t(0,9)=r(0,9);0;65535;",128,0,0,0
.stabs "signed char:t(0,10)=r(0,10);-128;127;",128,0,0,0
.stabs "unsigned char:t(0,11)=r(0,11);0;255;",128,0,0,0
.stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,13)=r(0,1);8;0;",128,0,0,0
.stabs "long double:t(0,14)=r(0,1);8;0;",128,0,0,0
.stabs "complex int:t(0,15)=s8real 0,1),0,32;imag 0,1),32,32;;",128,0,0,0
.stabs "complex float:t(0,16)=R3;8;0;",128,0,0,0
.stabs "complex double:t(0,17)=R4;16;0;",128,0,0,0
.stabs "complex long double:t(0,1 =R4;16;0;",128,0,0,0
.stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0
.stabs "_Bool:t(0,21)=eFalse:0,True:1,;",128,0,0,0
.stabs "main.c",130,0,0,0
.align 2
.stabs "main:F(0,1)",36,0,0,main
.globl main
main:
.stabn 68,0,3,.LM1-main
.LM1:
@.frame r2,44,r3 vars= 32, regs= 0/0, args= 16, extra= 12
@.mask 0x00000000,0
sw r2,[r0,-4]+
sw r3,[r0,-4]+
sw r0,[r0,-4]+
subi r0,48
mv r2,r0
@ movsi r8 __main
la r8,__main
@ call with return void [r8] 16
brl r8
.stabn 68,0,175,.LM2-main
.LM2:
@ movsi r8 0
li r8,0
.LBB2:
@ movsi [r2,16] r8
sw r8,[r2,16]
.L2:
@ movsi r8 [r2,16]
lw r8,[r2,16]
@ movsi [r2,24] r8
sw r8,[r2,24]
@ movsi r8 [r2,24]
lw r8,[r2,24]
@ cmpsi r8 89
cmpi.c r8,89
bgt .L7 @SImode Jump to .L5 if LE
b .L5
.L7:
@ jump .L3
j .L3
.L5:
.stabn 68,0,177,.LM3-main
.LM3:
@ movsi r8 [r2,16]
lw r8,[r2,16]
@ movsi [r2,28] r8
sw r8,[r2,28]
@ movsi r8 [r2,28]
lw r8,[r2,28]
@ cmpsi r8 0
cmpi.c r8,0
ble .L8 @SImode Jump to .L4 if GT
b .L4
.L8:
@ movsi r8 [r2,16]
lw r8,[r2,16]
@ movsi [r2,32] r8
sw r8,[r2,32]
@ movsi r8 [r2,32]
lw r8,[r2,32]
@ addsi3 r8 r8 1
addi r8,1
@ movsi [r2,36] r8
sw r8,[r2,36]
@ movsi r8 [r2,36]
lw r8,[r2,36]
@ movsi [r2,16] r8
sw r8,[r2,16]
.stabn 68,0,175,.LM4-main
.LM4:
.L4:
@ movsi r8 [r2,16]
lw r8,[r2,16]
@ movsi [r2,40] r8
sw r8,[r2,40]
@ movsi r8 [r2,40]
lw r8,[r2,40]
@ addsi3 r8 r8 1
addi r8,1
@ movsi [r2,44] r8
sw r8,[r2,44]
@ movsi r8 [r2,44]
lw r8,[r2,44]
@ movsi [r2,16] r8
sw r8,[r2,16]
@ jump .L2
j .L2
.L3:
.stabn 68,0,179,.LM5-main
.LM5:
@ movsi r8 0
li r8,0
@ movsi [r2,20] r8
sw r8,[r2,20]
.stabn 68,0,180,.LM6-main
.LM6:
.LBE2:
@ movsi r4 [r2,20]
lw r4,[r2,20]
addi r2,48
lw r0,[r2]+,4
lw r3,[r0]+,4
lw r2,[r0]+,4
br r3
.stabs "i 0,1)",128,0,0,16
.stabn 192,0,0,.LBB2-main
.stabn 224,0,0,.LBE2-main
.comm n, 4, 4
.stabs "n:G(0,1)",32,0,0,0
.text
.stabs "",100,0,0,Letext
Letext:
////////////////////////////////////////////////////////////////////////////////// |