麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

iOS中CPU線程調試的高級技巧分享

2019-10-21 18:39:17
字體:
來源:轉載
供稿:網友

前言

最近在開發直播,發現CPU性能被打滿后導致CPU降頻,發熱嚴重,然后卡頓…

為了定位這個問題我們花費了至少 3天的時間 一點一點跟蹤CPU的線程代碼,當遇到C++的thread的時候沒有符號表,只能看見一坨對象地址,除此以外連個方法名都沒有的時候真是手足無措.本篇介紹一個高級調試 方法,使用符號表和相關 指令尋蹤 相關代碼調用,寫的不好 大佬們請輕噴.代碼相關過程感謝同事 陳豪的大力支持.

Talk is cheap show me the code

我們的實現思路是找到動態庫的首地址調用從此入手用相關指令恢復

前期準備

build setting中開啟符號表

iOS,CPU,線程調試

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中的鍵入內容

iOS,CPU,線程調試

然后 點擊 工程中的Product

iOS,CPU,線程調試

右鍵 show in finder

iOS,CPU,線程調試

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

iOS,CPU,線程調試

然后 pwd一下 看看

3.控制臺搜索相關我們打印log的代碼

找到我們第一條首地址

iOS,CPU,線程調試

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

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

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

注意:這里是符號表路徑,如果不知道在哪里找到請google一下.

我們來測試一下 好不好使

首先在控制臺頂部的面板點擊

iOS,CPU,線程調試

然后 在 consolo中輸入 bt

iOS,CPU,線程調試

如果看到 如下內容說明已經成功.

iOS,CPU,線程調試

4.真機運行 找出未知線程

首先點擊Xcode工程中的Profile運行instruments,我這里是運行工程之后 Xcode9.4可以無縫轉換到instruments

iOS,CPU,線程調試

我們找到相關線程 沒有名稱也不知道對象叫什么 就一個十六進制地址

iOS,CPU,線程調試

我們隨便找個地址 在終端中輸入

iOS,CPU,線程調試

好了 如果有問題 請刪除product和符號表重新編譯

總結

CPU調試的過程非常麻煩,而且中間過程的代碼多數都是C++的調用,主要是線程消耗的開銷,中有很多收獲希望大家多多指教.

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色小视频免费在线观看 | 午夜精品老牛av一区二区三区 | 中文字幕免费看 | 国产精品久久久久久久久久iiiii | 玩偶姐姐 在线观看 | 男男羞羞视频网站国产 | 成人午夜久久 | 亚洲激情91 | 天堂成人一区二区三区 | 日韩视频一区二区在线观看 | 黄色一级片免费观看 | 欧美视频在线观看一区 | 91精品久久久久久久久久久 | v天堂在线视频 | 男女生羞羞视频网站在线观看 | 成年人在线视频观看 | 久色视频网站 | 看免费的毛片 | 国产精品视频中文字幕 | 久久新网址 | 伊人二本二区 | 91精品国产刺激国语对白 | 久久久久久久91 | 国产剧情在线观看一区二区 | 91av久久 | 精品国产精品久久 | 成人午夜免费国产 | 麻豆蜜桃在线观看 | 久久亚洲成人网 | 久久久久国产成人精品亚洲午夜 | 欧美成人精品一级 | 小视频免费在线观看 | 亚洲精品一区二区三区免 | 久久日韩在线 | 露脸各种姿势啪啪的清纯美女 | 久久久av影视 | 欧美在线观看视频一区二区 | 99综合视频 | 国产一级大片在线观看 | 精品无码一区在线观看 | 黄色毛片免费视频 |