質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

Q&A

解決済

2回答

6218閲覧

GDB でC言語のグローバル変数をすべて表示するコマンド

jun_T

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

0グッド

0クリップ

投稿2020/10/15 02:18

編集2020/10/15 05:31

###GDBでC言語のグローバル変数をすべて表示するコマンドが知りたいです。

### Cプログラム

#include <stdio.h> int a = 1; int b = 2; int c = 3; int main (void){ int x = 0; x = a+b+c; printf("%d" , x); return 0; }

GDBでa,b,cの変数の情報を全て表示するにはどうしたらよいでしょうか。

試したこと

info variables コマンドを試したのですが、a,b,cについての情報は出力されませんでした

###コンパイル手順
以下のコマンドで実行しました

$ gcc -g test.c -o test $ gdb test (gdb) break main (gdb) run (gdb) info variables

Ubuntu16.04
gccのバージョンは5.4.0です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/10/15 02:38

お使いのCコンパイラ(gcc? clang?)やOSのバージョン、コンパイルしたときのコマンドラインなど(つまり、手順)を示しましょう。コンパイルオプションが足りないのでは。 こちらではgcc -ggdb hoge.c や gcc -g hoge.c などとデバッグ用のオプションをコンパイル時に付ければ一応、出力されました。(Windows 10 WSL/Ubuntu付属のgcc)
jun_T

2020/10/15 03:15

ありがとうございます。 コマンドラインとOSのバージョンを追記させていただきました。
guest

回答2

0

ベストアンサー

手元のLinuxMint19.3(Ubuntu18.04LTSベース)で試してみましたが、表示されていました。

「info variables」だけだと表示される量が多すぎて確認が大変なので、確認したいグローバル変数名を絞り込みしやすいように「gval_」を付けた名前に変更した上で「info variables gval_」として表示してみました。

$ cat test2.c #include <stdio.h> int gval_a = 1; int gval_b = 2; int gval_c = 3; int main (void){ int x = 0; x = gval_a+gval_b+gval_c; printf("%d" , x); return 0; } $ gcc -g test2.c -o test2 $ gdb test2 (起動時表示表示省略) Reading symbols from test2...done. (gdb) break main Breakpoint 1 at 0x652: file test2.c, line 8. (gdb) run Starting program: /tmp/hoge10/test2 Breakpoint 1, main () at test2.c:8 8 int x = 0; (gdb) info variables gval_ All variables matching regular expression "gval_": File test2.c: int gval_a; int gval_b; int gval_c;

投稿2020/10/15 04:03

編集2020/10/15 05:39
hidezzz

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jun_T

2020/10/15 05:36

ありがとうございます! 正しく表示を確認することができました!
guest

0

リンク時に作成されるmapファイルを参照すればわかりますよ

投稿2020/10/15 02:21

y_waiwai

総合スコア88024

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問