本篇內容介紹了“iOS中CPU線程調試的高級技巧是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
網站建設哪家好,找創新互聯建站!專注于網頁設計、網站建設、微信開發、小程序制作、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了長沙免費建站歡迎大家使用!
前期準備
build setting中開啟符號表
1.導入頭文件
#import <mach-o/dyld.h>
這是mac os的可執行文件的動態鏈接庫頭文件 內部內建函數有幾個我們需要用到
2.復制下面代碼到你的相關調用的地方
//1uint32_t count = _dyld_image_count();DDLogInfo(@"Dyld image count %d", count);//2for (int i = 0; i < count; i++) {char *image_name = (char *)_dyld_get_image_name(i);//3const struct mach_header *mh = _dyld_get_image_header(i);intptr_t vmaddr_slide = _dyld_get_image_vmaddr_slide(i);//4NSLog(@"Image name %s at address 0x%llx and ASLR slide 0x%lx.\n",image_name, (mach_vm_address_t)mh, vmaddr_slide);}
我解釋一下以上代碼
1.拿出當前鏡像數量
2.遍歷鏡像
3.獲取鏡像首地址
4.打印
然后運行你的程序
然后看下控制臺 過濾一下 ASLR我們log中的鍵入內容
然后 點擊 工程中的Product
右鍵 show in finder
下一步驟 打開終端 cd 到這這個目錄(可以打開終端 輸入 cd 空格 拖拽那個文件夾)
然后 pwd一下 看看
3.控制臺搜索相關我們打印log的代碼
找到我們第一條首地址
注意:這一步非常重要 如果不好使,請重試幾次.
拿出main函數的首地址 ASLR中搜搜的 首地址然后復制 回到終端中輸入
atos -arch arm64 -o com_kwai_gif.app.dSYM/Contents/Resources/DWARF/com_kwai_gif -l 0x1006b8000
注意:這里是符號表路徑,如果不知道在哪里找到請google一下.
我們來測試一下 好不好使
首先在控制臺頂部的面板點擊
然后 在 consolo中輸入 bt
如果看到 如下內容說明已經成功.
4.真機運行 找出未知線程
首先點擊Xcode工程中的Profile運行instruments,我這里是運行工程之后 Xcode9.4可以無縫轉換到instruments
我們找到相關線程 沒有名稱也不知道對象叫什么 就一個十六進制地址
我們隨便找個地址 在終端中輸入
好了 如果有問題 請刪除product和符號表重新編譯
“iOS中CPU線程調試的高級技巧是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
網頁標題:iOS中CPU線程調試的高級技巧是什么
瀏覽地址:http://m.newbst.com/article10/pepcdo.html
成都網站建設公司_創新互聯,為您提供網站維護、外貿建站、品牌網站建設、軟件開發、搜索引擎優化、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯