<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-193  評論-715  文章-1  trackbacks-0

     

    原文地址:http://www.acwind.net/blog/?p=1090

    Bug是永遠伴隨著程序員們的東西,各種各樣的情況造成程序crash掉也是家常便飯。Windows下的很多大型軟件在崩潰的時候,都會彈出提示框,詢問用戶是否將crash的信息發(fā)送到軟件廠商,以供軟件開發(fā)商debug。App store中的軟件也有這個功能,用戶在使用軟件的時候,如果程序崩潰,錯誤信息會發(fā)送到Apple的服務(wù)器中,軟件的開發(fā)者們可以很方便在后臺獲得自己程序的crash log,供自己調(diào)試。

    但隨之而來的問題是,我們收到的程序崩潰調(diào)試信息多半是匯編語言一樣的堆棧代碼,同時這些信息并不是在我們debug的時候產(chǎn)生,所以看到這一串crash log的天書,常常無可奈何。Xcode很好的解決了這一問題,它所提供的Orgainzer分析器加上symbolicatecrash?,可以分析二進制文件以及源代碼和crashlog之間的連接,直接找出源程序中出錯的代碼行。方法網(wǎng)上到處是,本文不討論。

    但是如果使用symbolicatecrash?無法定位到出錯的代碼行的話,怎么整呢?有一個辦法,如下:

    首先查看crash log中的崩潰線程,假如是這樣的:

    Thread 0 Crashed:
    0   libobjc.A.dylib                0x00003ec0 objc_msgSend + 24
    1   MyApp               0x000036d2 0×1000 + 9938?

    我們得到了用戶發(fā)生崩潰情況的內(nèi)存地址:0x000036d2?

    然后回到我們應(yīng)用程序的build目錄,目錄下一定要包含MyApp.app 和MyApp.app.dSYM兩個文件。

    在控制臺使用dwarfdump命令,解析出內(nèi)存地址,如: 

    dwarfdump –lookup 0x000036d2 –arch armv6 MyApp.app.dSYM

    輸出信息如下:

    dwarfdump.jpg

    直接定位到代碼的出錯行,Cool!

    posted on 2011-12-28 12:24 Robin's Programming World 閱讀(1073) 評論(0)  編輯  收藏 所屬分類: 其它
    主站蜘蛛池模板: 香蕉免费一级视频在线观看| 亚洲最大在线观看| 亚洲色无码专区一区| 亚洲AV女人18毛片水真多| 国产在线a免费观看| 亚洲永久中文字幕在线| 日本一卡精品视频免费| 久久精品国产亚洲AV无码麻豆| 久久久久免费精品国产| 少妇中文字幕乱码亚洲影视| 久久国产精品2020免费m3u8| 97久久精品亚洲中文字幕无码 | 日日摸日日碰夜夜爽亚洲| 性xxxx视频播放免费| 亚洲av中文无码字幕色不卡| 一边摸一边桶一边脱免费视频 | 亚洲国产精品一区二区第一页免 | 亚洲国产午夜福利在线播放| 无人视频在线观看免费播放影院| 亚洲精品专区在线观看| 日本三级在线观看免费| 亚洲视频在线播放| 一二三四影视在线看片免费| 亚洲AV无码成人网站在线观看| 亚洲国产精品成人一区| 丁香花在线视频观看免费| 亚洲精品免费在线| 在线观看亚洲免费| 亚洲福利视频一区二区三区| 成年女人男人免费视频播放| 特级aaaaaaaaa毛片免费视频| 国产亚洲精品观看91在线| 青青草a免费线观a| 免费无码午夜福利片69| 亚洲男人第一av网站| 成人毛片免费视频| 久久久久久久久久免免费精品| 亚洲网站免费观看| 亚洲第一页综合图片自拍| 91福利视频免费| www免费黄色网|