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

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

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

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

1273閲覧

ソースコードに書かれた関数が、実際の動作でどの順番で動いたかの工程が知りたい

ahill

総合スコア17

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/03/06 08:09

編集2019/03/06 09:01

フリーのソースコードを簡略化したいと思っています。

コードはC++で、全部で数十万行ありますが、実際につかっているのは一部です。

インプットファイルから条件を読み取って、どの関数を使うかを逐次に処理しているのですが、
ソースを見ただけでは、どういった工程なのか、自分では分かりません。

そこで、例えばVScode、Eclipseなどの統合開発環境(IDE)や、プロファイラーや、
デバッガーなどのソフトを使ったりして、実際の動作の工程のなかで、実際に使った関数だけを
抜き出してくれたり、何かしら開発を補助してくれるような方法はないでしょうか。

どなたかご存知の方がいらっしゃいましたら、お教えくださいますようどうぞよろしく
お願いいたします。

17:40追記
ソースコードの可視化、可聴化は、トレースというキーワードで調べられるようですので、
調べてみたいと思います。
もし、プロファイルやデバッグ、またはトレースを行うソフトでいいのがあればお教え
くださいますよう、引き続きよろしくお願いいたします。

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

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

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

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

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

stdio

2019/03/06 08:12

古典的な方法だと、すべての関数にログを貼るですね。 「何かしら開発を補助してくれるような方法はないでしょうか。」と聞かれましても、そういったソフトは高いですよ。
pepperleaf

2019/03/06 12:15

必要なパス全てが確認できる事はどうやって確認するのでしょうか? ふと疑問。
ahill

2019/03/06 12:28

ジェネラルな答えはないですが、今回の自分の場合ソースの中身はある程度理解しているつもりなので、なんとかなりそうですね。 結局、普段はプロファイラーやデバッガーも使っているので詳細な確認はそちらでやって、今回のトレースやソースの可視化は、トレースマクロやカバレッジというのを使うというように、評価アプリもそれぞれ適材適所ではないでしょうか
episteme

2019/03/08 12:06

動いてる様子を観察したいならデバッガで break-point + 1-step traceかなー
guest

回答3

0

動的テストツールというものがあります。私はDT10を試したことがありますが、そこそこ有用だったと思います。ただ、値段を見て上がしり込みしたみたいなので、多分お高いんだと思います。
単にログ出力を入れまくるなり、ブレークポイントを大量に張るなりするだけでも、気合でどうにかなるとは思います。

ところで、本当にやりたいことはなんですか?
実際の処理フローを知りたいという例示として、ソースコードの簡略化を挙げているのか?ソースコードを簡略化するための方法として、実際の処理フローを知ればよいと思いつき、実施しようとしているのか?
後者なのだとしたら、私はやめたほうがいいと思います。内容を理解したうえで必要なところだけ抜き出すというならまだしも、内容はよくわからないけど動くところだけ使うでは、その辺りでバグが発生したときに大変な目に遭う可能性が高いと思います。まぁ、モノにもよるんですけど。

投稿2019/03/06 08:45

編集2019/03/06 08:56
moredeep

総合スコア1507

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

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

ahill

2019/03/06 12:23 編集

DTのご紹介ありがとうございました。 まさに、こんなソフトが欲しいのですが、やはりお高いのですね。。。 やりたいこととしては、簡略化後、高度化や最適化をして、より軽量でより処理の速いものを自分で作ろうと思っています。
guest

0

プロファイラがそのものズバリでしょう。
実際に動かした際に、ある関数がどの程の時間がかかったかを出力することができます。

Visual Studioの一部のエディションにも付属しています。

投稿2019/03/06 08:56

t_obara

総合スコア5488

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

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

ahill

2019/03/06 12:05

ご回答ありがとうございました。 おっしゃるように、Visual C++なんかにはTRACE マクロとかがあるようですね。 できればトレースもできればいいと思うので勉強してみようと思います。ありがとうございました。
t_obara

2019/03/07 00:25

ちなみに、TRACEマクロとプロファイラとは全く別物ですよ。TRACEマクロはprint文をより使いやすくしたマクロにすぎません。 プロファイラは実際に実行した際の動作を監視・ロギングができます。ビルド方法など癖がありますが。
guest

0

ベストアンサー

必要な機能だけを実行するテストコードを作成して、カバレッジを計測してみてはどうでしょうか。
実行されたコードを確認することができます。
OpenCppCoverageを使ってC++のカバレッジを計測する

投稿2019/03/06 08:52

dsuzuki

総合スコア1682

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

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

ahill

2019/03/06 09:57

カバレッジというもののご紹介ありがとうございます。勉強になりました。 フリーソフトで、使われたところがハイライトされる、という点でいいなと思いましたので試してみたいと思います。
ahill

2019/03/08 10:02

【以下、備忘録です。】 coverageについての情報ありがとうございます。 回答いただいた後Visual C++でもやってみましたが、普段Linuxでやっていてライブライリー関係もLinuxのものが多いので、普段使っているintelでも探してみましたら、同じようなことがintelコンパイラーでもできそうでした。結局、”coverage”のキーワードが役に立ったのでよかったです。 とりあえずリンクを貼っておきます。 https://software.intel.com/sites/default/files/article/401105/code-coverage.pdf
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問