
Seer - Linux向けgdbのGUIフロントエンドです。(Ernie Pasveer [email protected])
このプロジェクトは活発に開発が進められています。目標は、gdbへのシンプルでありながら使いやすいGUIを提供することです。
バグや機能要望は、私のメールアドレスまで報告するか、GitHubプロジェクトページにタスクを作成してください。
============
Seerは、パッケージマネージャーまたはソースコードからインストールできます。
[!NOTE] インストール前に要件が満たされていることを確認してください。
Linux
C++17
"mi"インタプリタを備えたgdb(gdb --interpreter=miを実行して確認してください)
CMake(3.5.0以降)
QT6
QT5
以下のパッケージマネージャーから利用できます:
$ pamac install seer
$ zypper install seergdb
Flathubウェブサイト。こちら
$ flatpak install flathub io.github.epasveer.seer
ベータ版のSeer。Seerのリリースページ(GitHub上)。
重要: GDB Launcherでgdbを実行するには、flatpak-spawn --hostが必要です。https://github.com/epasveer/seer/issues/377#issuecomment-3620844808 を参照してください。
seer.flatpakをダウンロードして、インストールします:
$ flatpak install -y --bundle --user seer.flatpak
ベータ版のSeer。Seerのリリースページ(GitHub上)。
$ snap install seergdb_<version>.snap --dangerous
(推奨)Seerは、以下の手順に従ってQt6でビルドできます。
当面は、以下の手順に従ってQt5でもビルドできます。
====
GitHub上のSeerのWikiページをチェックしてください。
=============
Seerは、コマンドラインからデバッグするプログラムを簡単に起動できるように設計されています。gdbにはプログラムをデバッグするための複数の方法があります。Seerも同様に複数の方法をサポートしています。
Seerの実行方法のすべてについては、Wikiを参照してください。
============
Seerのさまざまなビューとダイアログの例です。
Seerのメインビューは次のようになります:

ソース/関数/型/変数/ライブラリ
変数/レジスタ情報
コードマネージャー。
ブレークポイント、ウォッチポイント、キャッチポイント、プリントポイント、手動gdbコマンド、およびログ。
スタックフレーム情報。
スレッド情報。
gdbのリバースデバッグモードをサポート。
実行可能ファイルのオープンダイアログを起動すると、次のようになります:

実行可能ファイルからのすべてのテキスト出力はSeerコンソールに送られます。実行可能ファイルへのテキスト入力もコンソールから行えます。

通常、Seerはソースコードをコードマネージャーのタブとして表示します。プログラムのアセンブリもタブとして表示できます。
「View->Assembly View」を選択すると、実行中の現在のアセンブリを表示する追加のタブがソースコードタブと並んで表示されます。以下に例を示します。

ソースコードタブと同様に、アセンブリタブでもブレークポイントを設定できます。現在の命令がハイライト表示されます。
「Breakpoints」タブと「Stack frames」タブのエントリをダブルクリックすると、それらのアドレスのアセンブリが表示されます。
設定で定義されている「Nexti」と「Stepi」のホットキーがあります。通常は「Ctrl+F5」と「CTRL+F6」です。 アセンブリタブで「^F」を使用すると、強力な検索バーが表示されます。
Seerのアセンブリ機能は新しいものです。変更や機能の提案を歓迎します。
メモリビジュアライザーで生のメモリの内容を表示すると、次のようになります:
| メモリ | 逆アセンブル |
|---|---|
![]() | ![]() |
配列ビジュアライザーで配列の内容を表示すると、次のようになります:
| 通常 | スプライン | 散布図 |
|---|---|---|
![]() | ![]() | ![]() |
2つの配列をX-Yプロットとして使用できます。たとえば、この単純な'points'配列は図形のX-Y輪郭を形成します。
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| X値 | Y値 | XY値 |
|---|---|---|
![]() | ![]() | ![]() |
構造体ビジュアライザーでC/C++構造体またはC++クラスの内容を表示すると、次のようになります。 この例は、Seerが現在いるC++クラスの「*this」の内容を示しています。基本型であるすべての構造体メンバーは編集できます。

より軽量な基本構造体ビジュアライザーもありますが、ポインタを追跡できず、編集もできません。
画像である生のメモリの内容を表示する場合、画像ビジュアライザーを使用できます。

===============
バグや機能要望については、[email protected] までメールを送信してください。または、GitHubプロジェクトページにタスクを作成してください。
==========
素晴らしい世界です。