タグ

C++とコード解析に関するAkinekoのブックマーク (5)

  • Windows で lctags (C言語/C++ のタグジャンプ、コールグラフ、etc..) - Qiita

  • C言語/C++ コードを解析してインタラクティブなコールグラフ表示 by lctags - Qiita

    お知らせ 5月を目途に自分のサイトに引き揚げます。 https://ifritjp.github.io/documents/ lctags で解析した C言語/C++ コードの情報を基に、インタラクティブなコールグラフ表示に対応しました。 従来からコールグラフ表示を対応していましたが、それは事前に設定したコールグラフの深さ以内の全コールを辿るグラフを静的に生成するもので、この方法だと次の問題がありました。 辿りたい関数コール以外のパスまで展開されてしまう すぐに巨大なグラフになってしまう 設定された深さの全コールを解析&グラフ作成するため時間がかかる この問題を解決するため、インタラクティブに関数コールを展開可能なコールグラフ表示に対応しました。 このコールグラフは次の機能を持ちます。 動的に関数コールを展開/格納可能 最低限のコール情報しかアクセスしないため反応が早い 関数ポインタを利用

    C言語/C++ コードを解析してインタラクティブなコールグラフ表示 by lctags - Qiita
  • KCachegrind

    This is the homepage of the profiling tool Callgrind and the profile data visualization KCachegrind. Both are licensed under GPL V2. Callgrind uses runtime instrumentation via the Valgrind framework for its cache simulation and call-graph generation. This way, even shared libraries and dynamically opened plugins can be profiled. The data files generated by Callgrind can be loaded into KCachegrind

    KCachegrind
  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • C/C++の静的解析ツール・事例まとめ - 簡潔なQ

    C/C++の静的解析は、どう考えても大変なんだけどどう考えても需要が高いので、やはり色々なソフトウェアや事例があるようだ。まとまった情報が欲しいけど見つからなかったので自分の調べた範囲でまとめることにした。 他にも耳寄りな情報があったら教えてほしい。 静的解析を行うことができるソフトウェア 調べてみると結構たくさんある。それぞれの特徴とかあまりよくわからない。 (個人的には、とりわけ網羅的な形式的検証ができるツールの性能に興味があるので、それを中心に集めていたが、やはり網羅的とは限らないで探すともっとたくさん見つかるようだ。もちろん網羅性にはトレードオフがある) Frama-C …… C言語に形式手法を適用するための汎用のフレームワークで、静的検証のためのプラグインも多数(WPとかValueとか)存在する。網羅的な検証から発見的な手法、動的な手法まで様々ある。研究で使うのに便利そう Ast

    C/C++の静的解析ツール・事例まとめ - 簡潔なQ
  • 1