スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーをはてなブックマークに追加

クラッシュログの見方(配布済みアプリのバグ調査方法)

昨日、知人にAdhocで製作中のアプリを配布した。
ところが、今日になって致命的なバグが見つかったので、焦りながら色々と調査方法を調べてみた。

どうやら、クラッシュした時、iPhone本体にクラッシュログというものが作成されるらしい。そして、iPhoneとiTunesで同期を取った時、このログもパソコン(PC or Mac)にコピーされるとのこと。

コピーされる場所は以下のとおり。

[Mac OS]
~/Library/Logs/CrashReporter/MobileDevice
[Windows Vista]
C:\Users\\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice
[Windows XP]
C:\Documents and Settings\\Application Data\Apple computer\Logs\CrashReporter

ちなみに、まだクラッシュログ待ちなので、この前迷宮入りした謎のクラッシュについて追ってみた。

「XXX の iPhone.symbolicated」というフォルダに入っている、

    {アプリ名}_2010-09-27-165147_XXX-no-iPhone.crash

とういうファイルが日付からしてそれっぽい。

あまり期待しないで開いてみると、問題箇所を発見。


Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000008
Crashed Thread: 0

Thread 0 Crashed:
0 libobjc.A.dylib 0x000027d8 objc_msgSend + 16
1 KeyboardMaster 0x0001cfa2 -[MonthSubjectView alertView:didDismissWithButtonIndex:] (MonthSubjectView.m:367)
2 UIKit 0x003701d2 -[UIAlertView(Private) _popoutAnimationDidStop:finished:] + 322
3 UIKit 0x0005bbf0 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 184
4 UIKit 0x0005e9be -[UIViewAnimationState animationDidStop:finished:] + 34
5 QuartzCore 0x0002d8c2 run_animation_callbacks(double, void*) + 286
6 QuartzCore 0x0002d764 CA::timer_callback(__CFRunLoopTimer*, void*) + 116
7 CoreFoundation 0x000567f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8
8 CoreFoundation 0x000562a6 __CFRunLoopDoTimer + 854
9 CoreFoundation 0x0002779e __CFRunLoopRun + 1082
10 CoreFoundation 0x00027270 CFRunLoopRunSpecific + 224
11 CoreFoundation 0x00027178 CFRunLoopRunInMode + 52
12 GraphicsServices 0x000045ec GSEventRunModal + 108
13 GraphicsServices 0x00004698 GSEventRun + 56
14 UIKit 0x0000411c -[UIApplication _run] + 396
15 UIKit 0x00002128 UIApplicationMain + 664
16 KeyboardMaster 0x0000233c main (main.m:14)
17 KeyboardMaster 0x0000230c start + 32



ここでまず重要なのが、
Crashed Thread: 0
の記述。上記以外にも別スレッドの情報が出ているが、「スレッド0」で問題が発生したことが分かる。

次に、スレッド0のコールスタックから、自作のクラス名を探す。ここでは、「KeyboardMaster」がそれに当たる。よって、怪しいのはここ(↓)MonthSubjectView.mの367行目であることが分かる。
1 KeyboardMaster 0x0001cfa2 -[MonthSubjectView alertView:didDismissWithButtonIndex:] (MonthSubjectView.m:367)

そして、
Exception Type: EXC_BAD_ACCESS (SIGBUS)
から、不正なメモリアクセスが発生したことが分かる。

エラーの原因を一応報告。
ネットワーク接続失敗メッセージのDelegateをnilにすべき場所で、selfを設定していたことが原因だった。
意図せず他の確認メッセージ用の関数(問題箇所)のコードが実行されていた。
普段はそれでもかろうじて動作していたらしく、ネットワーク接続OK→NGの順で実行した場合のみ発生していたらしい。とは言え、この条件を自宅近辺で発生させるのは難しい。明日、通勤途中の地下鉄か職場のトイレの中で検証しよう(笑)

迷宮入りしそうだった不具合も、再度現象を再現させることなく原因が判明したのに驚いた。さて、本題のクラッシュログが届きそうなので、これから解析しなきゃ。。こちらは開発用コンパイル(Release)ではなくAdHocなので、こんな詳細ログは出ないんだろうな~、きっと。

[参考]
various artists - iPhoneアプリ開発・・・クラッシュログについて



このエントリーをはてなブックマークに追加

コメント

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

> 突然すいません。
> アプリ起動中にバッテリー切れを起こし、充電後にそのアプリを起動したらクラッシュするようになってしまいました。
> これって治せるのでしょうか。
クラッシュから復帰できない理由はアプリの内容や操作状況、タイミング等にもよりますので一般的な回答となってしまいますがご了承ください。
状況から、データ保存中に電源が切れてセーブデータが破損している可能性がありそうです。経験上、破損したセーブデータの復旧はかなり難しいと思います。アプリを一旦アンインストールし直せば、多くの場合は起動できるようになります。
iCloudやiTunesでバックアップを取っていれば復旧という手もあるのですが・・・。
iPhoneアプリ紹介
パズルナビ for パズドラ 2016
最強のコンボツール!
colorization-large-icon.png

スクリーンショットを読み込むとコンボを自動計算してくれるパズドラの攻略アプリです。


AirRuler
(簡易距離計)

リモートで簡単に距離を測定できるアプリ!
colorization-large-icon.png

目標地点に向けてiPhoneを傾けるだけで簡単に距離を測定できます。ゴルフの距離測定機能付きパターの代わりにも使えます。


補色残像アート
~見えない色が見えてくる~
白黒なのにカラーに見えてしまう不思議な映像を体験しよう!
colorization-large-icon.png

補色残像という目の錯覚を利用して、白黒写真がカラーに見える不思議な映像を作成できます。作成した映像は、アニメGIFに変換したり、Twitterに投稿することもできます。


タイピング革命
フリック練習はタイピング革命で!ネットランキングで盛り上がろう!
icon-l-typing.jpg

オンラインランキング上のプレイを閲覧できるリプレイ機能付き!フリック入力とローマ字入力に完全対応したタイピング練習アプリです。初心者も安心のトレーニングモード付き。

★なんと!あのAppBank様に紹介して頂きました!!
typing-sale-led.gif


簡単3Dカメラ
iPhoneで手軽に3D写真を楽しもう!平行法/交差法/アナグリフ/グラグラ3Dに対応。
icon-l-3d.jpg

2枚の写真を撮影するだけで、裸眼で立体視できる3D写真が作成できます。85円でステレオ写真もアナグリフも楽しめるのは簡単3Dカメラだけ!

プロフィール

あらきんぐ☆

Author:あらきんぐ☆
はじめまして。あらきんぐです。
4月からiPhoneを購入し、その魅力に取り付かれて、気がついたらアプリ開発の道へ!仕事でプログラム開発をしていますが、基本「動けばOK!」な適当エンジニアです。適当でもアプリは作れる!っていう事を、ブログを通じて証明していきたと思います。

最新記事
最新コメント
最新トラックバック
カテゴリ
FC2カウンター
全記事表示リンク

全ての記事を表示する

Twitter
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
アクセスランキング
[ジャンルランキング]
コンピュータ
369位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
45位
アクセスランキングを見る>>
オススメ商品
iPhone/iPodと一般オーディオを繋ぐ貴重なアイテム!
アプライドオリジナルアイテム MBB...

アプライドオリジナルアイテム MBB...
価格:3,980円(税込、送料別)

開発中級者にオススメ!「こんなことができるんだ!」と驚かされる一冊
【送料無料】iPhone...

【送料無料】iPhone...
価格:1,500円(税込、送料別)

安い!シンプル!カッコいい!
希少なiPhone対応キーボード内蔵ケース
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。