gdbの出力読み取りについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
だんごさん
記事: 273
登録日時: 12年前

gdbの出力読み取りについて

#1

投稿記事 by だんごさん » 7年前

現在、gcc(MinGW)とgdbを使ってC言語エディタを作っています。
内部でgccコンパイラを動かしてgdbでデバッグを行っています。

ここで、gdbの出力してくる情報の識別方法に悩んでいます。
というのも出力してくる情報に識別子のようなものが無いため何の情報か間接的に判断するしかありません。
(gdb)[STEPIN]みたいな文があったらいいのですが…
何か識別する方法がありましたら教えてほしいです。

よろしくお願いします。

開発VB Windows10
対象C
Visual Studio 2015
 Dango San

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: gdbの出力読み取りについて

#2

投稿記事 by みけCAT » 7年前

オフトピック
だんごさん さんが書きました:現在、gcc(MinGW)とgdbを使ってC言語エディタを作っています。
内部でgccコンパイラを動かしてgdbでデバッグを行っています。
だんごさん さんが書きました: 対象C
Visual Studio 2015
どういうことだ…?と思ったけど、最近のVisual Studioはgcc対応しているのですね。
ようやくきました。Visual StudioがGCC/GDB対応 – デバイスとITの架け橋
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

だんごさん
記事: 273
登録日時: 12年前

Re: gdbの出力読み取りについて

#3

投稿記事 by だんごさん » 7年前

みけCAT さんが書きました:
オフトピック
だんごさん さんが書きました:現在、gcc(MinGW)とgdbを使ってC言語エディタを作っています。
内部でgccコンパイラを動かしてgdbでデバッグを行っています。
だんごさん さんが書きました: 対象C
Visual Studio 2015
どういうことだ…?と思ったけど、最近のVisual Studioはgcc対応しているのですね。
ようやくきました。Visual StudioがGCC/GDB対応 – デバイスとITの架け橋
開発がVisual Studio 2015であって自作のエディタがgcc/gdbです。
書き方というか説明が下手ですみません。

VSでVBを使って、C言語エディタを作成しています。
そのC言語エディタで使っているコンパイラ・デバッガがgcc/gdbで、gdbの情報をGUI化したいのですがgdbの情報を切り出すのが困難だということです…。

コード:

> GNU gdb (GDB) 7.6.1
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "mingw32".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from C:\Users\UserName\text.exe...done.
> (gdb) Breakpoint 1 at 0x401470: file main.c, line 17.
> (gdb) (gdb) Starting program: C:\Users\UserName\text.exe 
> [New Thread 3888.0x292c]
> [New Thread 3888.0x5e60]
> Breakpoint 1, main () at main.c:17
> C:\Users\UserName\main.c:17:161:beg:0x401470
> (gdb) b = 50
> a = 10
これはbreakpointを設定して、breakpointに来た後に変数の一覧を取得している際のgdbのログです。
ここから変数の中身の数値を取ってくるだけでも本当にそれが変数の情報なのか判断が難しいのです。
もしかすると想定外の文章が入ってくるかもしれませんので…。

詳細なログを出すコマンドオプションがあるのかもしれませんが分かりませんでした…。
教えていただけるとありがたいです。
 Dango San

だんごさん
記事: 273
登録日時: 12年前

Re: gdbの出力読み取りについて

#4

投稿記事 by だんごさん » 7年前

自己解決しました。
GDBのオプションに註釈レベルというのがあるそうで、このレベルを上げることでプログラムから判断しやすい出力にしてくれるようになりました。
http://www.asahi-net.or.jp/~wg5k-ickw/h ... ja_19.html
 Dango San

閉鎖

“C言語何でも質問掲示板” へ戻る