web-dev-qa-db-ja.com

デバッガーgdb使用時の不明な終了信号

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が正しく機能することを保証する証明書を追加しましたが、この問題を修正するものは何も見つかりませんでした。

28
Pierre P.

Sierraを使用している場合、それは期待されています。 GDBはmacOS Sierraと互換性がありません。最後のリリース(7.12)でもです。

バグを修正するために、GDBの別のリリース、またはmacOSの別の更新を待つ必要があります。

27
Houssem Nouira

この回答から: 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はどこにあり、どのように編集できますか?

https://sourceware.org/gdb/onlinedocs/gdb/Starting.html

31
Parth Mehrotra

Homebrew経由でgdbをインストールしました。インストールの最後に次のように表示されます。

SIPを使用する10.12(Sierra)以降では、これを実行する必要があります。

echo "set startup-with-Shell off" >> ~/.gdbinit

これは機能させるために必要でした。また、.gdbinitはEclipseデバッグ構成で設定されました

9
Muhammad

私にとっては、gdbを単にアンインストールしてインストールするだけでMacOS Sierraバージョン10.12.4で完全に機能し、

  1. GDBのアンインストール

$ brewアンインストールgdb

  1. GDBをインストールする

$ brew install gdb

これにより、MacOS Sierraと互換性のある最新のgdbがインストールされます。

これが誰にも役立つことを願っています!

5
Pankaj

Sierra(10.12)はgdbをサポートしていないようです。証明書を作成してもらうチュートリアルに従ってみました。その後、gdbを実行したときに、同じエラーが表示されました。

Appleはlldbを使用します。それはうまく機能し、Eclipseと統合できると言われました。 リンク です。

2
audrow