Skip to content

Instantly share code, notes, and snippets.

@Arnold1
Created June 2, 2015 19:32
Show Gist options
  • Select an option

  • Save Arnold1/de11b874467df424d8b3 to your computer and use it in GitHub Desktop.

Select an option

Save Arnold1/de11b874467df424d8b3 to your computer and use it in GitHub Desktop.
disassemble6
gdb rust_blink
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rust_blink...done.
(gdb) run
Starting program: /home/rust_blink
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x2a0041d8 in main::h7c904f0c83bbf9ffXma ()
(gdb) disassemble
Dump of assembler code for function _ZN4main20h7c904f0c83bbf9ffXmaE:
0x2a004088 <+0>: push {r4, r5}
0x2a00408c <+4>: mrc 15, 0, r4, cr13, cr0, {3}
0x2a004090 <+8>: mov r5, sp
0x2a004094 <+12>: ldr r4, [r4, #4]
0x2a004098 <+16>: cmp r4, r5
0x2a00409c <+20>: bcc 0x2a0040bc <_ZN4main20h7c904f0c83bbf9ffXmaE+52>
0x2a0040a0 <+24>: mov r4, #216 ; 0xd8
0x2a0040a4 <+28>: mov r5, #0
0x2a0040a8 <+32>: stmfd sp!, {lr}
0x2a0040ac <+36>: bl 0x2a004420 <__morestack>
0x2a0040b0 <+40>: ldmfd sp!, {lr}
0x2a0040b4 <+44>: pop {r4, r5}
0x2a0040b8 <+48>: bx lr
0x2a0040bc <+52>: pop {r4, r5}
0x2a0040c0 <+56>: push {r4, r5, r6, lr}
0x2a0040c4 <+60>: sub sp, sp, #200 ; 0xc8
0x2a0040c8 <+64>: add r4, sp, #88 ; 0x58
0x2a0040cc <+68>: mov r0, r4
0x2a0040d0 <+72>: bl 0x2a006e04 <_ZN2fs11OpenOptions3new20h20814d83a2bb3049m2eE>
0x2a0040d4 <+76>: mov r0, r4
0x2a0040d8 <+80>: mov r1, #1
0x2a0040dc <+84>: mov r6, #1
0x2a0040e0 <+88>: bl 0x2a006e2c <_ZN2fs11OpenOptions4read20h8d287ecfd16ff8a6u2eE>
0x2a0040e4 <+92>: mov r1, #1
0x2a0040e8 <+96>: bl 0x2a006e34 <_ZN2fs11OpenOptions5write20hec73819a37a698f9L2eE>
0x2a0040ec <+100>: mov r5, r0
0x2a0040f0 <+104>: ldr r0, [pc, #736] ; 0x2a0043d8 <_ZN4main20h7c904f0c83bbf9ffXmaE+848>
0x2a0040f4 <+108>: ldr r1, [pc, #736] ; 0x2a0043dc <_ZN4main20h7c904f0c83bbf9ffXmaE+852>
0x2a0040f8 <+112>: add r4, sp, #56 ; 0x38
---Type <return> to continue, or q <return> to quit---
0x2a0040fc <+116>: add r0, pc, r0
0x2a004100 <+120>: ldr r0, [r1, r0]!
0x2a004104 <+124>: ldr r1, [r1, #4]
0x2a004108 <+128>: str r1, [sp, #132] ; 0x84
0x2a00410c <+132>: str r0, [sp, #128] ; 0x80
0x2a004110 <+136>: add r1, sp, #128 ; 0x80
0x2a004114 <+140>: mov r0, r4
0x2a004118 <+144>: bl 0x2a00ecb4 <_ZN4path21str.AsRef$LT$Path$GT$6as_ref20hc47831fd258fa169LLlE>
0x2a00411c <+148>: ldr r0, [sp, #56] ; 0x38
0x2a004120 <+152>: ldr r1, [sp, #60] ; 0x3c
0x2a004124 <+156>: mov r2, r5
0x2a004128 <+160>: str r0, [sp, #128] ; 0x80
0x2a00412c <+164>: str r1, [sp, #132] ; 0x84
0x2a004130 <+168>: add r1, sp, #128 ; 0x80
0x2a004134 <+172>: mov r0, r4
0x2a004138 <+176>: bl 0x2a00a9ec <_ZN3sys2fs4File4open20h4fa0c9455ac8600c4vtE>
0x2a00413c <+180>: ldr r1, [sp, #56] ; 0x38
0x2a004140 <+184>: orr r0, r4, #4
0x2a004144 <+188>: cmp r1, #0
0x2a004148 <+192>: bne 0x2a004218 <_ZN4main20h7c904f0c83bbf9ffXmaE+400>
0x2a00414c <+196>: ldr r1, [r0]
0x2a004150 <+200>: ldr r0, [r0, #4]
0x2a004154 <+204>: str r6, [sp, #60] ; 0x3c
0x2a004158 <+208>: str r0, [sp, #124] ; 0x7c
0x2a00415c <+212>: mov r0, #6
0x2a004160 <+216>: str r1, [sp, #120] ; 0x78
0x2a004164 <+220>: str r0, [sp, #56] ; 0x38
0x2a004168 <+224>: mov r0, #0
0x2a00416c <+228>: str r0, [sp, #68] ; 0x44
0x2a004170 <+232>: str r0, [sp, #64] ; 0x40
---Type <return> to continue, or q <return> to quit---
0x2a004174 <+236>: str r0, [sp, #76] ; 0x4c
0x2a004178 <+240>: str r6, [sp, #72] ; 0x48
0x2a00417c <+244>: add r0, sp, #120 ; 0x78
0x2a004180 <+248>: bl 0x2a00a9e4 <_ZN3sys3ext2io16fs..File.AsRawFd9as_raw_fd20he4f14b01a2a1ab6cdSsE>
0x2a004184 <+252>: str r0, [sp, #84] ; 0x54
0x2a004188 <+256>: mov r0, #4
0x2a00418c <+260>: str r4, [sp]
0x2a004190 <+264>: str r0, [sp, #80] ; 0x50
0x2a004194 <+268>: str r0, [sp, #4]
0x2a004198 <+272>: add r4, sp, #8
0x2a00419c <+276>: mov r2, sp
0x2a0041a0 <+280>: mov r1, #4194304 ; 0x400000
0x2a0041a4 <+284>: mov r0, r4
0x2a0041a8 <+288>: bl 0x2a00474c <_ZN9MemoryMap3new20h6a9bf83cdb2c8db6KlaE>
0x2a0041ac <+292>: ldr r6, [sp, #8]
0x2a0041b0 <+296>: orr r5, r4, #4
0x2a0041b4 <+300>: cmp r6, #0
0x2a0041b8 <+304>: bne 0x2a00431c <_ZN4main20h7c904f0c83bbf9ffXmaE+660>
0x2a0041bc <+308>: ldm r5, {r0, r1, r2, r3, r6}
0x2a0041c0 <+312>: add r4, sp, #32
0x2a0041c4 <+316>: stm r4, {r0, r1, r2, r3, r6}
0x2a0041c8 <+320>: mov r1, #0
0x2a0041cc <+324>: mov r2, #0
0x2a0041d0 <+328>: ldr r0, [sp, #32]
0x2a0041d4 <+332>: add r0, r0, #2162688 ; 0x210000
=> 0x2a0041d8 <+336>: str r1, [r0, r2, lsl #16]
0x2a0041dc <+340>: add r2, r2, #1
0x2a0041e0 <+344>: cmp r2, #16384 ; 0x4000
0x2a0041e4 <+348>: bne 0x2a0041d8 <_ZN4main20h7c904f0c83bbf9ffXmaE+336>
0x2a0041e8 <+352>: ldrb r0, [sp, #48] ; 0x30
---Type <return> to continue, or q <return> to quit---
0x2a0041ec <+356>: cmp r0, #212 ; 0xd4
0x2a0041f0 <+360>: bne 0x2a0041fc <_ZN4main20h7c904f0c83bbf9ffXmaE+372>
0x2a0041f4 <+364>: add r0, sp, #32
0x2a0041f8 <+368>: bl 0x2a004b44 <_ZN14MemoryMap.Drop4drop20hdc2a61d178a17700IpaE>
0x2a0041fc <+372>: ldrb r0, [sp, #124] ; 0x7c
0x2a004200 <+376>: cmp r0, #212 ; 0xd4
0x2a004204 <+380>: bne 0x2a004210 <_ZN4main20h7c904f0c83bbf9ffXmaE+392>
0x2a004208 <+384>: add r0, sp, #120 ; 0x78
0x2a00420c <+388>: bl 0x2a006dfc <_ZN3sys2fd13FileDesc.Drop4drop20h79b47df182771696jctE>
0x2a004210 <+392>: add sp, sp, #200 ; 0xc8
0x2a004214 <+396>: pop {r4, r5, r6, pc}
0x2a004218 <+400>: ldr r1, [r0]
0x2a00421c <+404>: ldr r0, [r0, #4]
0x2a004220 <+408>: add r2, sp, #104 ; 0x68
0x2a004224 <+412>: ldr r5, [pc, #444] ; 0x2a0043e8 <_ZN4main20h7c904f0c83bbf9ffXmaE+864>
0x2a004228 <+416>: orr r2, r2, #4
0x2a00422c <+420>: str r0, [r2, #4]
0x2a004230 <+424>: ldr r0, [pc, #424] ; 0x2a0043e0 <_ZN4main20h7c904f0c83bbf9ffXmaE+856>
0x2a004234 <+428>: str r1, [sp, #108] ; 0x6c
0x2a004238 <+432>: ldr r1, [pc, #420] ; 0x2a0043e4 <_ZN4main20h7c904f0c83bbf9ffXmaE+860>
0x2a00423c <+436>: str r6, [sp, #104] ; 0x68
0x2a004240 <+440>: add r0, pc, r0
0x2a004244 <+444>: ldr r1, [r1, r0]
0x2a004248 <+448>: ldr r5, [r5, r0]
0x2a00424c <+452>: ldr r3, [r1]
0x2a004250 <+456>: ldr r1, [r1, #4]
0x2a004254 <+460>: str r5, [sp, #140] ; 0x8c
0x2a004258 <+464>: str r2, [sp, #136] ; 0x88
0x2a00425c <+468>: str r1, [sp, #148] ; 0x94
0x2a004260 <+472>: mov r1, #0
---Type <return> to continue, or q <return> to quit---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment