溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS中CPU線程調(diào)試的高級(jí)技巧是什么

發(fā)布時(shí)間:2021-11-05 10:06:51 來源:億速云 閱讀:152 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“iOS中CPU線程調(diào)試的高級(jí)技巧是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

前期準(zhǔn)備

build setting中開啟符號(hào)表

1.導(dǎo)入頭文件

#import <mach-o/dyld.h>

這是mac os的可執(zhí)行文件的動(dòng)態(tài)鏈接庫(kù)頭文件 內(nèi)部?jī)?nèi)建函數(shù)有幾個(gè)我們需要用到

2.復(fù)制下面代碼到你的相關(guān)調(diào)用的地方

//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.拿出當(dāng)前鏡像數(shù)量

2.遍歷鏡像

3.獲取鏡像首地址

4.打印

然后運(yùn)行你的程序

然后看下控制臺(tái) 過濾一下 ASLR我們log中的鍵入內(nèi)容

然后 點(diǎn)擊 工程中的Product

右鍵 show in finder

下一步驟 打開終端 cd 到這這個(gè)目錄(可以打開終端 輸入 cd 空格 拖拽那個(gè)文件夾)

然后 pwd一下 看看

3.控制臺(tái)搜索相關(guān)我們打印log的代碼

找到我們第一條首地址

注意:這一步非常重要 如果不好使,請(qǐng)重試幾次.

拿出main函數(shù)的首地址 ASLR中搜搜的 首地址然后復(fù)制 回到終端中輸入

atos -arch arm64 -o com_kwai_gif.app.dSYM/Contents/Resources/DWARF/com_kwai_gif -l 0x1006b8000

注意:這里是符號(hào)表路徑,如果不知道在哪里找到請(qǐng)google一下.

我們來測(cè)試一下 好不好使

首先在控制臺(tái)頂部的面板點(diǎn)擊

然后 在 consolo中輸入 bt

如果看到 如下內(nèi)容說明已經(jīng)成功.

4.真機(jī)運(yùn)行 找出未知線程

首先點(diǎn)擊Xcode工程中的Profile運(yùn)行instruments,我這里是運(yùn)行工程之后 Xcode9.4可以無縫轉(zhuǎn)換到instruments

我們找到相關(guān)線程 沒有名稱也不知道對(duì)象叫什么 就一個(gè)十六進(jìn)制地址

我們隨便找個(gè)地址 在終端中輸入

好了 如果有問題 請(qǐng)刪除product和符號(hào)表重新編譯

“iOS中CPU線程調(diào)試的高級(jí)技巧是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

ios
AI