閱讀427 返回首頁    go 阿裏雲 go 技術社區[雲棲]


解決os x下gdb不能調試的問題

    在較新的os x中使用gdb調試程序會發生 Unable to find Mach task port 之類的錯誤,這是由於新的os x內核禁止未授權的程序隨意控製其他進程,如果不用root權限的話,我們還可以使用程序簽名的方式來解決這個問題。(誰又想老是以root權限調試普通程序呢?偷笑)

    依次進入 應用程序->實用工具,打開鑰匙串訪問:


    選擇菜單 鑰匙串訪問->證書助理->創建證書,第一個步驟如下設置:


    然後一直next,最後一個設置如下設置:


    最後回到鑰匙串訪問程序主界麵,鼠標右鍵選中剛才新建的證書,選擇顯示簡介,然後展開 信任 項,在代碼簽名處勾選 總是信任。


在控製台進入gdb程序目錄,輸入:codesign -s gdb-cert gdb ,好了打完收工,注意要重啟mac後,簽名設置才能生效哦。

    在windows下侵淫多年的童鞋都喜歡使用帶有GUI的debugger來調試,在unix like係統中也有圖形調試器,比如著名的codelite和codeblocks都自帶調試器。不過作為大名鼎鼎的gdb最貼合前端的圖形調試器DDD也是非同小可,它和gdb結合甚密,功能也十分強大,推薦大家使用。


    最後要注意一點,如果大家在os x下使用sudo ddd調試程序後,會發現ddd會長時間處於“發呆” 狀,無法調試程序,狀態欄總顯示 :Waiting until gdb ready 之類的信息,這時不要慌張,直接 rm -rf ~/.ddd文件夾即可。

最後更新:2017-04-03 08:26:24

  上一篇:go 修改android最小堆內存
  下一篇:go android任務棧