Mac OS XにGDBをインストールし、動作することをテストするために、次のCプログラムを使用しました。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int *my_array = (int *) malloc(5 * sizeof(int));
int i;
for (i = 0; i < 1000000; i++) {
my_array[i] = i;
}
free(my_array);
return 0;
}
コンパイル時にエラーが発生しましたが、これは正常です(セグメンテーションエラー)
ただし、コンパイルコマンドで-gフラグを追加し、コンパイル済みプログラムでgdbを実行すると、コマンドを起動した後にこのメッセージが表示されますrun
During startup program terminated with signal ?, Unknown signal.
それがどこから来たのか本当に分からない。 OS Xでgdbが正しく機能することを保証する証明書を追加しましたが、この問題を修正するものは何も見つかりませんでした。
Sierraを使用している場合、それは期待されています。 GDBはmacOS Sierraと互換性がありません。最後のリリース(7.12)でもです。
バグを修正するために、GDBの別のリリース、またはmacOSの別の更新を待つ必要があります。
この回答から: https://stackoverflow.com/a/40437725/1060955
これは私が問題を簡単に修正した方法です。 [更新:受け取ったフィードバックに基づいており、まだ検証されていないため、このソリューションはmacOS Sierra 10.12で動作するようですが、macOS Sierra 10.12.2では動作しないようです]
ビデオの手順はこちらをご覧ください
Gdbを終了します
テキストエディターの使用(例:崇高なテキスト、「。gdbinit」と呼ばれるファイル[引用符を除く]をユーザーフォルダーに保存します。
ファイルに以下を追加します。「startup-with-Shell offを設定」[引用符を除く]
ファイルを保存する
gdbは動作するはずです
ソース
https://stackoverflow.com/a/40437725/1060955
https://discussions.Apple.com/thread/7684629?start=0&tstart=
.gdbinitはどこにあり、どのように編集できますか?
Homebrew経由でgdbをインストールしました。インストールの最後に次のように表示されます。
SIPを使用する10.12(Sierra)以降では、これを実行する必要があります。
echo "set startup-with-Shell off" >> ~/.gdbinit
これは機能させるために必要でした。また、.gdbinit
はEclipseデバッグ構成で設定されました
私にとっては、gdbを単にアンインストールしてインストールするだけでMacOS Sierraバージョン10.12.4で完全に機能し、
$ brewアンインストールgdb
$ brew install gdb
これにより、MacOS Sierraと互換性のある最新のgdbがインストールされます。
これが誰にも役立つことを願っています!
Sierra(10.12)はgdb
をサポートしていないようです。証明書を作成してもらうチュートリアルに従ってみました。その後、gdb
を実行したときに、同じエラーが表示されました。
Appleはlldb
を使用します。それはうまく機能し、Eclipseと統合できると言われました。 リンク です。