在使用CocoaPod的Xcode工程中斷點沒有除錯資訊的問題跟進
通常客戶端產品至少都會有Debug和Release兩種編譯配置,在編譯Release版本中會進行一些優化,以減少最終產品的體積。
比如,在Release版本中會對程式碼執行步驟進行優化(如O1、O2等),這會導致有些程式碼被優化省略掉,有時無法單步除錯;另外就是會去掉符號資訊,這會導致斷點除錯時沒有符號資訊,所以才會有CallStack的捕獲和解析內容。
由於千牛iOS端會有不同版本,分別面向內部開發者、外部ISV以及終端使用者。尤其是在整合QAP專案後需要提供一個專門的開發除錯版本給QAP開發者,所以新增了一個QAPDistribution Scheme,並且這個Scheme是從Debug Scheme複製過來的,所以按道理是可以進行除錯、檢視符號資訊的。結果在使用這個Scheme進行開發除錯的過程中發現符號資訊缺失,控制檯輸出如下資訊:
AppName was compiled with optimization - stepping may behave oddly; variables may not be available.
這就給我們排查問題帶來不便。雖然可以切換成Debug來除錯排查,但由於給ISV的版本不是Debug的,所以環境不一致,可能會導致一些遺漏。於是我再次確認了下編譯配置資訊:
確實和Debug是一致的,這就帶來了困惑。
後來進一步發現在千牛自身程式碼中是有符號資訊的,但是跟進到Pod依賴中就缺失了,所以懷疑是不是Pod工程的編譯配置有問題:
發現果然Pods工程的編譯配置是有對QAPDistribution Scheme進行優化的。那麼問題來了,如果我手動修改一下,之後再進行pod update
是不是又會復原?驗證了下果然如此,所以只能通過Pod本身的配置來解決問。在網上搜了下,有如下解決方案:
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
if config.name.include?("QapDistribution")
config.build_settings[`GCC_OPTIMIZATION_LEVEL`] = `0`
end
end
end
經驗證有效。
相關文章
- Xcode斷點除錯出現的問題XCode斷點除錯
- Xcode之斷點除錯詳解XCode斷點除錯
- 解決除錯不能命中斷點的問題除錯斷點
- VS - 打斷點/本地除錯/遠端除錯 問題斷點除錯
- ssis package 在除錯狀態中設定斷點,程式 不進入斷點 的解決方案Package除錯斷點
- 在 Python 除錯過程中設定不中斷的斷點Python除錯斷點
- [譯] Xcode 中的使用者斷點XCode斷點
- 新版的Chrome斷點有問題Chrome斷點
- Pycharm的斷點除錯PyCharm斷點除錯
- Swift 首次除錯斷點慢的問題解法 | 優酷 Swift 實踐Swift除錯斷點
- 由一條微博引發的 — Xcode LLDB 除錯斷點總結XCodeLLDB除錯斷點
- 有沒有大佬知道為啥 VScode 加了斷點之後,F5 在斷點處直接跳過的問題呢VSCode斷點
- 如何防止斷點除錯進入jquery庫斷點除錯jQuery
- Chrome 中的 JavaScript 斷點設定和除錯技巧ChromeJavaScript斷點除錯
- webstorm 斷點除錯WebORM斷點除錯
- 使用Xcode進行iOS裝置無線除錯XCodeiOS除錯
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 使用ErrorStack進行錯誤跟蹤及診斷!Error
- 【前端除錯】- 斷點除錯的正確開啟方式前端除錯斷點
- Xcode中使用LLDB除錯XCodeLLDB除錯
- 使用谷歌瀏覽器進行斷點除錯簡單介紹谷歌瀏覽器斷點除錯
- appium 自動化中關於斷言問題,有沒有更好的斷言方法,求大神賜教!APP
- 使用ErrorStack進行Oracle錯誤跟蹤及診斷ErrorOracle
- 使用ERRORSTACK進行錯誤跟蹤及診斷(轉)Error
- go除錯的問題。Go除錯
- 通過哪些方法判斷goroutine洩漏?有沒有具體的除錯步驟的文章?Go除錯
- js斷點除錯心得JS斷點除錯
- 還在斷點除錯?教你四種除錯技巧讓你快速定位錯誤!斷點除錯
- samples-1.5_03問題望除錯成功的進除錯
- xcode lldb除錯使用總結XCodeLLDB除錯
- Xcode 上使用Reveal除錯介面XCode除錯
- ssdbgrid中,設了斷點的除錯狀態和執行狀態有區別斷點除錯
- 新手關於jbuilder中除錯session的問題UI除錯Session
- 跟著ORACLE幹,沒問題~~~Oracle
- 解決vi 在FC5中沒有高亮顯示的問題(轉)
- Vscode斷點除錯VSCode斷點除錯
- 請問在websphere如何能看到除錯資訊?Web除錯
- Xcode 刪除沒用的描述檔案XCode