[Mono-dev] How to debug native code?
Pin Cheng
pcheng at rocketsoftware.com
Tue Jan 19 02:14:59 UTC 2016
Hi all,
I am trying to port Mono into Aix host, I have am very fundamental question:
How are you guys debug native code?
Because JIT compiler compiles assembly into native code then JIT invoke it,
I am very curious if there errors in native code How do you find out the bug and fix it.
And if you updates the cpu-<ARCH>.md or <ARCH>-codegen.h how do you verify your changes is ok?
There must be somewhat effect method to debug the JIT and it specific architecture.
Since I am porting Mono into Aix, I got assembler code which disassembled from native code:
0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff b0 stwu r1,-80(r1)
c: 93 61 00 48 stw r27,72(r1)
10: 93 e1 00 4c stw r31,76(r1)
14: 7c 3f 0b 78 mr r31,r1
18: 90 7f 00 28 stw r3,40(r31)
1c: 90 9f 00 2c stw r4,44(r31)
20: 90 bf 00 30 stw r5,48(r31)
24: 90 df 00 34 stw r6,52(r31)
28: 38 60 00 00 li r3,0
2c: 90 7f 00 20 stw r3,32(r31)
30: 38 60 00 00 li r3,0
34: 90 7f 00 24 stw r3,36(r31)
38: 80 7f 00 30 lwz r3,48(r31)
3c: 2c 03 00 00 cmpwi r3,0
40: 41 82 00 a4 beq 0xe4
44: 3c 60 20 03 lis r3,8195
48: 60 63 e5 04 ori r3,r3,58628
4c: 80 63 00 00 lwz r3,0(r3)
50: 2c 03 00 00 cmpwi r3,0
54: 41 82 00 38 beq 0x8c
58: 3d 80 30 3c lis r12,12348
5c: 61 8c cd d8 ori r12,r12,52696
60: 7d 88 03 a6 mtlr r12
64: 4e 80 00 21 blrl
68: 7c 64 1b 78 mr r4,r3
6c: 7c 9b 23 78 mr r27,r4
70: 2c 03 00 00 cmpwi r3,0
74: 41 82 00 18 beq 0x8c
78: 7f 63 db 78 mr r3,r27
7c: 3d 80 30 00 lis r12,12288
80: 61 8c 82 90 ori r12,r12,33424
84: 7d 88 03 a6 mtlr r12
88: 4e 80 00 21 blrl
8c: 80 7f 00 2c lwz r3,44(r31)
90: 80 83 00 00 lwz r4,0(r3)
94: 80 7f 00 28 lwz r3,40(r31)
98: 80 bf 00 34 lwz r5,52(r31)
9c: 7c a8 03 a6 mtlr r5
a0: 4e 80 00 21 blrl
a4: 48 00 00 38 b 0xdc
a8: 80 7f 00 1c lwz r3,28(r31)
ac: 80 7f 00 1c lwz r3,28(r31)
b0: 90 7f 00 24 stw r3,36(r31)
b4: 80 7f 00 30 lwz r3,48(r31)
b8: 80 9f 00 24 lwz r4,36(r31)
bc: 90 9f 00 40 stw r4,64(r31)
c0: 90 83 00 00 stw r4,0(r3)
c4: 3d 80 30 3c lis r12,12348
c8: 61 8c cf 50 ori r12,r12,53072
cc: 7d 88 03 a6 mtlr r12
d0: 4e 80 00 21 blrl
d4: 80 7f 00 40 lwz r3,64(r31)
d8: 48 00 00 04 b 0xdc
dc: 80 7f 00 20 lwz r3,32(r31)
e0: 48 00 00 38 b 0x118
e4: 3c 60 20 03 lis r3,8195
e8: 60 63 e5 04 ori r3,r3,58628
ec: 80 63 00 00 lwz r3,0(r3)
f0: 28 03 00 00 cmplwi r3,0
f4: 40 82 00 40 bne 0x134
f8: 48 00 00 04 b 0xfc
fc: 80 7f 00 2c lwz r3,44(r31)
100: 80 83 00 00 lwz r4,0(r3)
104: 80 7f 00 28 lwz r3,40(r31)
108: 80 bf 00 34 lwz r5,52(r31)
10c: 7c a8 03 a6 mtlr r5
110: 4e 80 00 21 blrl
114: 80 7f 00 20 lwz r3,32(r31)
118: 80 1f 00 54 lwz r0,84(r31)
11c: 7c 08 03 a6 mtlr r0
120: 7f ec fb 78 mr r12,r31
124: 83 7f 00 48 lwz r27,72(r31)
128: 83 ff 00 4c lwz r31,76(r31)
12c: 38 2c 00 50 addi r1,r12,80
130: 4e 80 00 20 blr
134: 3d 80 30 3c lis r12,12348
138: 61 8c cd d8 ori r12,r12,52696
13c: 7d 88 03 a6 mtlr r12
140: 4e 80 00 21 blrl
144: 7c 64 1b 78 mr r4,r3
148: 7c 9b 23 78 mr r27,r4
14c: 2c 03 00 00 cmpwi r3,0
150: 41 82 ff ac beq 0xfc
154: 7f 63 db 78 mr r3,r27
158: 3d 80 30 00 lis r12,12288
15c: 61 8c 82 90 ori r12,r12,33424
160: 7d 88 03 a6 mtlr r12
164: 4e 80 00 21 blrl
This code leads to core dump, it is the body of
method ((wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr))
>From such code, How could I tell where leads to core dump?
Please help me or give me a clue.
Thank you very much!
Pin
================================
Rocket Software, Inc. and subsidiaries ? 77 Fourth Avenue, Waltham MA 02451 ? +1 800.966.3270 ? +1 781.577.4321
Unsubscribe From Commercial Email - unsubscribe at rocketsoftware.com
Manage Your Subscription Preferences - http://info.rocketsoftware.com/GlobalSubscriptionManagementEmailFooter_SubscriptionCenter.html
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy
================================
This communication and any attachments may contain confidential information of Rocket Software, Inc. All unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify Rocket Software immediately and destroy all copies of this communication. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20160119/1205759e/attachment-0001.html>
More information about the Mono-devel-list
mailing list