viagra generic canada
viagra cheap generic
viagra softabs
real viagra woman
viagra cialis canadian pharmacy
generic viagra tab
sales online viagra
online medications viagra
viagra cost in canada
viagra 50 mg
order viagra or levitra
viagra argentina
viagra online pharamcy
viagra cheap sale
viagra 100mg dosage
viagra generic on line
order viagra cialis levitra pharmacy
order viagra without prescription
sale viagra
online perscriptions for viagra
viagra generic soft tabs 100mg
sales uk viagra
viagra cost
viagra cialis store
online viagra for sale
low cost viagra
where to buy viagra in london
viagra cheap online rx
get viagra now internet
online pharmacy prescription drug viagra
viagra price uk
viagra prescriptions uk
viagra buy general
viagra uk without prescription
where can i purchase viagra
viagra buy it
viagra to buy
viagra best prices
order cialis and viagra
viagra in usa
order prescription viagra without
viagra cheapest uk
where to purchase viagra
viagra on internet prescription online
viagra get prescription online
get viagra in canada
viagra price online
viagra online without prescription
order viagra prescription
viagra soft tabs low cialis
viagra buy australia
purchase viagra without prescription
online cheap viagra
purchasing viagra australia
viagra without perscription
lowest price on viagra
viagra cheapest price
no online pharmacy prescription required viagra
viagra canada prescription
viagra on line no prescripton
generic viagra solf tabs
purchase viagra soft tabs
purchasing viagra in venezuela
viagra by mail canada
online store viagra
no prescription order viagra online
viagra buying online
viagra generic discount
viagra on line sales
viagra genetic
us discount viagra
on line generic viagra for sale
online order viagra
viagra united states
viagra usa mastercard
online viagra prescription canada
viagra online
viagra cialis canada
viagra cialis online
viagra cialis online pharmacy satisfaction guaranteed
ordering generic viagra in canada
viagra online rx
generic viagra rx
viagra canada generic
non prescription viagra
where to get viagra
viagra in the uk
mail order viagra online
where to buy viagra uk
viagra in mexico
viagra online no rx
online pill viagra
get viagra drug online
viagra cheapest prices
viagra on line purchase
online uk viagra sales
uk viagra on line
viagra cheap prescription
online viagra canada
get viagra without prescription
viagra uk cheap
viagra prices in usa
viagra cost uk
viagra best buy
viagra 100mg
viagra on the internet
online ordering viagra
low price for viagra
order viagra here
generic viagra uk
viagra cialis buy no prescription
viagra prescription order
no prescription viagra
uk viagra sales online
viagra discount sales
order viagra without a prescription
purchase cheap viagra online
purchase viagra professional
viagra cheap
generic viagra pills
purchase viagra by check
viagra 100mg tablets
uk viagra online
online viagra pharmacy
viagra pharmacy sales london
on line pharmacy for viagra
viagra canadian price shipped
viagra on line order
generic viagra without visa
viagra in uk
order mexican viagra
online viagra no generic
mail order viagra in uk
viagra pharmacy online
viagra in britain
where can i buy viagra in
viagra to order
order viagra now viagra money order
order 50mg viagra
no rx viagra
viagra no presrciption
lowest viagra prices
viagra to buy in uk
viagra 50mg
viagra cheapest
viagra buy in uk online
lowest price generic viagra
viagra online no doctor prescription
order viagra online no rx prescription
viagra cost best price viagra
viagra purchase
viagra generico impotencia
purchasing viagra in mexico
viagra prescriptions online
order generic viagra online
viagra canada
where can i get viagra
sales of viagra
viagra cheap uk
viagra buy generic
getting viagra in the philippines
mail order viagra uk
viagra online ordering
order viagra overnight delivery
generic viagra softabs
online viagra
sale online viagra
viagra with out prescription
viagra in australia
order viagra online
real viagra online for americans
us drugs store cheap viagra
viagra without prescription new york
generic viagra with money order
viagra pills online
viagra no prior prescription
where to buy viagra
mail uk viagra
lowest priced viagra in britain
viagra cialis online pharmacy
viagra 100 50 25
non prescription viagra in uk
viagra online shop
viagra canida
viagra generic uk
online viagra order
uk viagra kamagra
get viagra without a prescription
order generic viagra
viagra by mail
generic viagra soft pharmacy online
pharmacy purchase viagra
viagra without prescription
viagra american express canada
lowest cost of viagra
viagra best price generic
viagra online canada
lowest cost viagra
viagra cost per pill
generic viagra sale
viagra uk retail price
viagra online pharmacies
generic viagra us licensed online pharmacy
generic viagra us pharmacy
on viagra
viagra 25mg
viagra prescriptions on line
viagra canada satisfaction guarantee
viagra without presciption online
uk viagra prices
viagra prescription uk
online shop viagra
sales viagra
get viagra
viagra online store
ordering viagra
get viagra now no doctor visit
where to buy viagra online
order viagra canada
uk viagra sales
viagra germany
viagra cost australia
viagra by the pill
get viagra online
where do i buy viagra online
purchase viagra in uk
viagra on prescription
generic viagra propecia
viagra to buy uk
viagra online discount
viagra best price
where to buy viagra from
generic viagra sales
non perscription viagra
no perscription viagra
on line pharmacy viagra
viagra without precription
online viagra sales
viagra cheap buy
viagra canada price
where can i buy viagra on
viagra by overnight delivery
viagra 50mg or 100mg
viagra 50mg uk
ordering viagra without prescription
get viagra prescription online
get viagra now
online viagra pills
viagra in the philippines
viagra online stores
tadalafil viagra
viagra soft tabs generic 100mg
purchasing viagra online
viagra 100
pharmacy viagra
viagra uk sales
viagra 50mg 100mg
viagra canada online
order viagra softtabs
on line generic viagra
viagra 25
no persription viagra
viagra generic cheap
where to buy viagra in nz
viagra soft tab
purchase viagra and cialis
online pharmacy viagra no prescription
viagra pill on line
online generic viagra sales
online parmacy viagra cheap
viagra on line
viagra best price sildenafil
order viagra on line
viagra cialis no prescription required
online sales viagra
no prescription cheap viagra
viagra in netherland
order discount viagra
uk cheapest viagra
viagra buy viagra
viagra purchase uk
nonprescription viagra
viagra buy oonline
viagra uk cheap purchase buy
viagra cheap no prescription
viagra best prices fda approved
viagra price australia
order viagra usa
no online order prescription viagra
viagra soft tab generic
viagra online pharmacy
viagra on line prescription
viagra discounts
viagra uk buy
viagra 50mg online
lowest price viagra online
pure theatrical viagra
where can i buy viagra online
online viagra australia
low price viagra
low priced viagra chain store
viagra purchase canada
online viagra levitra cialis
where can i purchase viagra online
ordering viagra online
viagra pills for sale
viagra buy online
purchasing viagra online for cheap
viagra cialis on line
viagra online cheap
online prescription for viagra
viagra no prescreption
lowest priced viagra in the uk
non perscription generic viagra
viagra on line canada
viagra canada online pharmacy
online pharmacy viagra
viagra generic buy
viagra canadian
viagra by money order
viagra generic buy online american express
viagra buy it online now
viagra prices uk
lowest price for viagra online
viagra generic cialis
where can i buy viagra uk
viagra non prescription
viagra online fda
viagra pills cheap
purchasing viagra
online free sample viagra canada
viagra without a prescription
viagra on lilne
low priced viagra
viagra cheap canada
purchase generic viagra uk
order viagra now money
viagra online purchase
non prescription viagra online
viagra pill uk
viagra pills uk
viagra price canada
viagra pills without a prescription
viagra to buy online
on line viagra american pharmacy
purchase viagra on line
viagra online shop uk
viagra online in canada
viagra pharmacy online sale
where buy viagra
online uk viagra
purchase viagra uk
generic viagra purchase
online buy viagra
viagra cheap mexico
sales online viagra sale
viagra uk online
lowest viagra price
viagra buy
viagra online without rx
viagra cialis generic
lowest cost generic viagra
viagra online prescriptions
viagra in ontario
online pharmacy uk viagra
viagra online shop online approval
online check payment viagra
viagra no prescription needed
viagra usa
viagra online prescription
order viagra overnight shipping
uk viagra
where can i order generic viagra
viagra generico mexico
lowest prices viagra
low cost viagra online
on line prescription viagra
online generic viagra
online viagra sale
real viagra
viagra without a perscription
mail order for viagra tablets
viagra 50
where can i buy viagra
no online prescription viagra
get viagra dont visit a doctor
generic viagra softtabs
order viagra viagra online
order viagra
viagra costs australia
generic viagra soft tabs
viagra to florida
online purchase viagra
viagra soft tablets
where to buy viagra on line
uk generic viagra
viagra on-line
online viagra uk
purchase viagra online
viagra best buy diet pills
viagra online uk no generic
online viagra prescriptions
tadalafil cialis vs viagra
lowest prices viagra uk
uk pharmacies cheap viagra
viagra generic cheap discounted cheapest online
viagra purchases
viagra online uk
low cost generic viagra
online viagra prescription
viagra no prescripsion
order viagra viagra
viagra online from us pharmacys
viagra best quality lowest prices
viagra cost per pill in mexico
generic viagra with american express
online order prescription viagra
on line viagra
generic viagra woman
viagra purchase online
viagra on line uk
viagra onlin
mail order viagra
where can i buy viagra from
viagra 50 mg or 100mg
online pharmacy prescription viagra
mail order viagra without prescription
lowest prices on generic viagra
viagra online no prescription
generic viagra usa
viagra amsterdam
viagra cialis online sales
order viagra cheap
viagra canadian prescriptions
tadalafil generic viagra
get discount viagra online
us viagra cheap
where do i buy viagra in
viagra u s pharmacies
viagra buy now pay later
viagra generic mastercard precription
viagra discount sale
order viagra licensed pharmacies online
viagra canadaian prices
viagra online in united states
uk viagra london
viagra no prescription canada
viagra in spain
non-prescription viagra
viagra prescription onlin
viagra online sales
online prescription viagra without
order viagra online uk
purchase generic viagra
viagra uk sale
viagra buying
viagra discount
viagra online canadiain
viagra 100 mg
get viagra on internet
lowest price viagra
low priced purchase viagra
viagra best prices fda approved online
online pharmacy viagra cialis
viagra discount online
purchase viagra in australia
order viagra on-line
order uk viagra
viagra purchase on line
viagra soft tablet
order viagra uk
viagra prescription online
viagra without prescription canada
viagra buy viagra online
viagra cheap usa
online viagra store
viagra 100mg 90 pills
where to get viagra samples
viagra in canada
where to buy viagra in uk
generic viagra sale on line
viagra softtabs
viagra generic buy american express
online pharmacy propecia viagra
viagra cialis cheap
online sale viagra
get online viagra
viagra cheap online
viagra no prescription
viagra onlines
viagra no presciption
pharmacy online viagra
mail order generic viagra
viagra 50mg soft tab generic
sale uk viagra
lowest price viagra in the uk
generic viagra online pharmacy
viagra american express
where can i get free viagra
viagra without a prescriotion
no perscription generic viagra
viagra online buy
on-line viagra
viagra cialis prescription online
viagra philippines
viagra on sale
viagra online shop in uk
order prescription viagra
viagra uk delivery
purchase generic viagra online
viagra by mail order
viagra buy uk
viagra generic drug
viagra uk purchase
purchase of viagra
viagra canada pharmacy
viagra online uk delivery
us viagra
viagra online order
generic viagra uk online pharmacy
viagra generic sildenafil
order cheap viagra
viagra purchase in united states
get viagra online guarantee
generic viagra tadalafil
order viagra onlines
nonperscription viagra
order viagra with mastercard
mail online order viagra
generic viagra pill
viagra discount store
generic viagra soft tab
viagra onliine
online phamacy viagra
viagra soft tabs
viagra on line pharmacy
online prescription viagra
purchase viagra
viagra uk
viagra generico
order viagra now

iPhone Crash Logs

Sometimes programs crash. This annoys users and developers alike. Users are frustrated because they cannot use crashing software, developers are frustrated because they have to hunt bugs instead of doing something creative and rewarding. How do we communicate if an iPhone application crashes?

I’ll start with a disclaimer. I’m not sure whether the information provided in this post is covered by iPhone Developer Program NDA or not. If it is, the post will be removed. Secondly, this post is a result of googling, so I haven’t invented anything new here.

Working with crash logs typically involves certain interaction between developers and users, unless they are automagically sent to the developer. First of all, the user should get the crash log and send it to the developer, who should examine it, find the bug and fix it.

iPhone OS and Mac OS X are remarkably similar architectures. Both store crash logs to help identify crashing bugs. The difference between the two is how users retrieve them. On Mac OS X every user has unrestricted access to crash logs related to the applications she runs. The iPhone does not even have a file browser. What to do? iTunes comes to the rescue.

Whenever you synchronize your iPhone or iPod Touch, all the crash logs are transferred to your computer. Here are their locations:

  • Mac OS X : ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>
  • Windows XP: C:\Documents and Settings\<USERNAME>\Application Data\Apple computer\Logs\CrashReporter/<DEVICE_NAME>
  • Windows Vista: C:\Users\<USERNAME>\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice/<DEVICE_NAME>

The log file names start with application name and have the extension “crash”. They are just plain text files and can be sent by e-mail in original or zipped form, or even copy-pasted into your e-mail program.

The second part is trickier. Both Apple and common sense suggest that all AppStore binaries are shipped with stripped symbols. If you ever saw a crash log like this, read on:

Thread 0 Crashed:
0   libobjc.A.dylib           0x300c87ec 0x300bb000 + 55276
1   MobileLines               0x00006434 0x1000 + 21556
2   MobileLines               0x000064c2 0x1000 + 21698
3   UIKit                     0x30a740ac 0x30a54000 + 131244
4   UIKit                     0x30a66110 0x30a54000 + 74000
5   UIKit                     0x30a6565c 0x30a54000 + 71260
6   GraphicsServices          0x3169b0b4 0x31696000 + 20660
7   GraphicsServices          0x3169d818 0x31696000 + 30744
8   IOMobileFramebuffer       0x31f3e8f8 0x31f3d000 + 6392
9   com.apple.framework.IOKit 0x30f342b8 0x30f30000 + 17080
10  CoreFoundation            0x3025ced4 0x30229000 + 212692
11  CoreFoundation            0x3025bed6 0x30229000 + 208598
12  CoreFoundation            0x3025b584 0x30229000 + 206212
13  GraphicsServices          0x316998e4 0x31696000 + 14564
14  UIKit                     0x30a5e308 0x30a54000 + 41736
15  UIKit                     0x30a671dc 0x30a54000 + 78300
16  MobileLines               0x00002090 0x1000 + 4240
17  MobileLines               0x0000202c 0x1000 + 4140

In a nutshell, it contains function addresses and offsets instead of function names and line numbers. The structure is obvious, but, to be honest, I don’t know what “MobileLines 0×00006434 0×1000 + 21556″ is, even though I have all the source code. Thanks to Apple Developer Tools and to Craig Hockenberry who wrote about it, we have a perfect solution called symbolicatecrash.

I copied it to /usr/local/bin/ so that I can run it whenever I want without trying to remember its original location (you may prefer a symbolic link):
$ sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/

Running this script with the -h option provides the minimal help:

$ symbolicatecrash -h
usage:

    symbolicatecrash [-Ah] LOGFILE [SYMBOL_PATH ...]

    Symbolicates a crashdump LOGFILE which may be "-" to refer
  to stdin. By default, all heuristics will be employed
  in an attempt to symbolicate all addresses. Additional
  symbol files can be found under specified directories.

Options:
    -A  Only symbolicate the application, not libraries
    -h  Display this message
    -v  Verbose

To add symbols to the crash log you need the dSYM file generated by the linker when you compiled your application for AppStore. In other words, when you build for AppStore you should keep the dSYM package in a safe place backed up by Time Machine. This is very important. You should keep a copy of the dSYM for each version of your application ever shipped. If you have the package, translating code offsets to function names with line numbers has never been easier:

$ symbolicatecrash report.crash MobileLines.app.dSYM > report-with-symbols.crash

Here is the result:

Thread 0 Crashed:
0   libobjc.A.dylib           0x300c87ec objc_msgSend + 20
1   MobileLines               0x00006434 -[BoardView setSelectedPiece:] (BoardView.m:321)
2   MobileLines               0x000064c2 -[BoardView touchesBegan:withEvent:] (BoardView.m:349)
3   UIKit                     0x30a740ac -[UIWindow sendEvent:] + 264
4   UIKit                     0x30a66110 -[UIApplication sendEvent:] + 248
5   UIKit                     0x30a6565c _UIApplicationHandleEvent + 4088
6   GraphicsServices          0x3169b0b4 PurpleEventCallback + 428
7   GraphicsServices          0x3169d818 HeartbeatVBLCallback + 152
8   IOMobileFramebuffer       0x31f3e8f8 IOMobileFramebufferNotifyFunc + 124
9   com.apple.framework.IOKit 0x30f342b8 IODispatchCalloutFromCFMessage + 304
10  CoreFoundation            0x3025ced4 __CFMachPortPerform + 72
11  CoreFoundation            0x3025bed6 CFRunLoopRunSpecific + 2364
12  CoreFoundation            0x3025b584 CFRunLoopRunInMode + 44
13  GraphicsServices          0x316998e4 GSEventRunModal + 268
14  UIKit                     0x30a5e308 -[UIApplication _run] + 404
15  UIKit                     0x30a671dc UIApplicationMain + 1064
16  MobileLines               0x00002090 main (main.m:16)
17  MobileLines               0x0000202c start + 44

Now, this is much better. Happy debugging!

Other useful references:

21 Responses to “iPhone Crash Logs”

  • […] Whatever » Blog Archive » iPhone Crash Logs iPhone crash log locations on OS X and Windows (tags: iphone fuckingnda crashlog) […]

  • […] we have a good post for your attention on how to diagnose iPhone crashes in the wild after the fact. Salient points are […]

  • […] On the iPhone you can’t access the crash report file form your application because it’s running in a sandbox. iTunes syncs the crash reports of all application, so in theory a user can send it to you, but this seems rather complicated to me (Locations of Crash Logs). […]

  • Konstantin..

    Thanks for this great writeup. I made sure to snapshot my .dsym files last time i submitted a new build to the app store. This morning i had a user send me a crash dump and i’m having trouble getting it “symbolificated”. When i run the command it matches up all of the framework calls but none of my code. Have you had this happen?

  • Josh, I haven’t seen it fail. The only reason I can imagine is that the .dsym file does not match the binary. This may happen if you built your project again after archiving the .dsym or if you ran the tool against a different binary. For example, in my “build” folder I have both “AppStore-iphoneos” and “Release-iphoneos” folders because I have a separate provisioning profile for AppStore. For some reason I cannot explain these binaries differ even though their build configurations are identical except for the provisioning profile.

    You can make a test application which always crashes and try to symbolicate a crash report to make sure the tool works on your machine as expected. If such a test fails, you have definitely stumbled upon a bug.

  • I’m having the same problem as josh. I have a .dsym file and when I run the script it doesn’t give any errors, but the output is basically the same as the input crash log. I read on Hockenberry’s website (furbo.org) that if the path to the .dsym file had a space the script would fail due to a bug in it. But my path has no spaces. I tried running script with the -v (verbose) option and this is what it says:

    Symbolicating…
    11795 characters read.
    0 binary images referenced:

    OS Version 5F136
    Arch of Logfile: armv6
    0 binary images remain after pruning:

    Finding Symbols:
    done.
    0 binary images were found.


    While there are no errors listed there, the fact that it says 0 binary images were found means something is amiss.

    Any ideas? What does it say when you run with the -v command on a working symbolicatecrash?

    Thanks in advance for your help and thanks for posting this potentially great information!

  • Dave, on my machine it says:
    Symbolicating…
    8457 characters read.
    47 binary images referenced:

    OS Version 5C1
    Arch of Logfile: armv6
    6 binary images remain after pruning:
    WebCore, libSystem.B.dylib, GraphicsServices, UIKit, CoreFoundation, MobileLines,
    Finding Symbols:

    Hmmm, I noticed that Apple has updated the script. Are you running the latest version? I guess something fails in parse_images subroutine. You might uncomment print STDERR on line 389 to see what images it finds. As far as I can see, there even may be problems parsing the crash log file itself due to certain symbols in the application name. Too bad I can’t parse perl scripts.

  • I’m still using the 2.0 SDK for maximum device compatibility. Guess it’s time to switch to the 2.1, or are you even referring to the 2.2 SDK? Perhaps there is somewhere I can download the latest script from the web? Sorry to be a pest, but hopefully we can find the root cause that others may see in the future and can document a fix for it right here!

  • Dave, can you send me your crash report (dev *at* anoshkin.net)?

  • Hey, Dave and Konstantin - did you figure out the problem? I have the same thing going on here…

    ThX

  • I think so (though Dave forgot to confirm it). Dave was facing two problems. The crash log came from iPhone OS 2.2 and was corrupted. Since Dave hadn’t installed SDK 2.2, symbolicatecrash could not find any system library symbols.

  • […] For more on this problem and how to use symbolicatecrash, see the excellent articles here and here. […]

  • Hello,
    I’m having a similar problem Josh is having. The cocoa framework calls match, but none of my app call matches. I’m running iPhone OS 2.2 and SDK 2.2. I ran the symbolicatecrash in verbose mode and noticed one thing:

    ………fetching symbol file for TestCrashLog–[undef]
    Searching []…– NO MATCH
    Searching in Spotlight for dsym with UUID of /var/mobile/Applications/A59C6CEB-30CA-4E40-98EE-D1B080D2F0DE/TestCrashLog.app/TestCrashLog
    Running mdfind “com_apple_xcode_dsym_uuids == 78375A1D-9645-99CC-2208-A3F56DD04DDB”
    dsym directory: \/Users\/halbert\/Documents\/dev\/iphone\/TestCrashLog\/build\/Release\-iphoneos\/TestCrashLog\.app\.dSYM
    paths: /Users/halbert/Documents/dev/iphone/TestCrashLog/build/Release-iphoneos/TestCrashLog.app{,/TestCrashLog,/Contents/MacOS/TestCrashLog}
    Did not find executable for dsym
    ## Warning: Can’t find any unstripped binary that matches version of /var/mobile/Applications/A59C6CEB-30CA-4E40-98EE-D1B080D2F0DE/TestCrashLog.app/TestCrashLog

    It looks as though its not finding the corresponding binary to the dsym. However, its in the same location as the dsym, so I’m not sure why I would be having this problem.

    Any ideas?

    Thanks

  • hello,
    I believe I have found a solution to my problem above. Apparently there is a bug in the symbolicatecrash script w/ finding .dsym and binary files that indeed exist. You can read about it here and d/l a modified version of the script that fixes the problem:

  • […] error. If you’re looking to piece together a crash when your device wasn’t plugged in, Konstantin Anoshkin put together a nice post on how to symbolicate a crash log which will make it readable in much the […]

  • […] the build you sent out, you can “symbolicate” the crash. There are full details here: iPhone Crash Logs. There are also ways to get symbol data for crashes, if symbolicatecrash doesn’t work, using […]

  • […] How to gather crash logs from an iPhoneOS device  and how tp read the crash log. Thanks to Konstantin Anoshkin who has put this help together: http://www.anoshkin.net/blog/2008/09/09/iphone-crash-logs/ […]

  • […] ?????symbolicatecrash?解説????詳????。 […]

  • Fantastic thank you. Find the files you are looking for at http://your-download.org the most comprehensive source for free-to-try files downloads on the Web

  • […] 2.2 的問題來源,還提供了 crash log 給我們做診斷。先前因為程式的 bug […]

  • […] crash logs If you’re in the unfortunate position of having to decipher a crash log, navigate here to give them […]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>