簡體   English   中英

在Mac上使用gdb在eclipse中調試-無法執行MI命令:-exec-run

[英]debugging in eclipse using gdb on mac - Failed to execute MI command: -exec-run

我有我的Eclipse Kepler和我簡單的HelloWorld C程序,我想在這里學習如何調試C程序。 當單擊調試按鈕時,出現以下錯誤信息:

最終啟動序列中的錯誤無法執行MI命令:-exec-run來自調試器后端的錯誤消息:找不到進程ID 359的Mach任務端口:(os / kern)故障(0x5)。 找不到進程ID 359的Mach任務端口:(os / kern)故障(0x5)。

我整天都在搜索,沒有找到任何解決方案。 我已經在Eclipse GDB MacOSX Mavericks中完成了所有推薦的操作,但仍然出現此錯誤。

如果有人可以幫助我在Eclipse中設置調試器,那就太好了。

哦,我通過macports下載並安裝了gdb-apple,我不得不在codesign命令中使用“ -f”選項,因為如果沒有它,它就無法工作。 也許這些是重要的信息。

如果在對“ gdb-cert”進行所有更改之前對“ gdb”進行了簽名,則可能會發生這種情況。 然后,您可以重新啟動“ taskgated”,然后重新簽署“ gdb”可執行文件。

  1. ps -e | grep taskgated
  2. sudo kill -9 <任務的pid>
  3. codesign -f -s gdb-cert $(其中gdb)

這對我有用。

繼續使用gdb(而非gdb-apple),只需執行以下步驟:

1-創建證書:

  • 啟動鑰匙串訪問應用程序(/ Applications / Utilities / Keychain Access.app)
  • 打開菜單/鑰匙串訪問/證書助手/創建證書...
  • 選擇一個名稱(在示例中為gdb-cert),將“身份類型”設置為“自簽名根”,將“證書類型”設置為“代碼簽名”,然后選擇“讓我覆蓋默認值”。
  • 在“繼續”上單擊幾次,直到進入“指定證書的位置”屏幕,然后將“鑰匙串”設置為“系統”。
  • 使用證書的上下文菜單,選擇“獲取信息”,打開“信任”項,並將“代碼簽名”設置為“始終信任”。

2-您必須退出“鑰匙串訪問”應用程序(從活動監視器中命名為“ taskgated”),然后再次打開它才能使用證書。

3-將證書分配給gdb:

  • 使用以下命令: $ codesign -s gdb-cert gdb

有關更多詳細信息,請檢查此鏈接: http : //sourceware.org/gdb/wiki/BuildingOnDarwin

如果這些步驟中的任何一個不清楚,請隨時提出。

如果出現以下錯誤,請不要忘記在sudo前添加sudo

sudo codesign -s gdb-cert $(which gdb-apple)

codesign -s gdb-cert $(which gdb-apple)

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate: can't create output file: /opt/local/bin/gdb-apple.cstemp (Permission denied)
/opt/local/bin/gdb-apple: the codesign_allocate helper tool cannot be found or used

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM