バグベアードを更新しました。(プロファイル対応、カバレッジ対応、他)

バグベアード


http://tricklib.com/cxx/ex/bugbeard/


2008-09-23 以下の点を修正。

  • プロファイル対応
  • カバレッジ対応
  • プロファイル&カバレッジのサンプルコードを追加。
  • bug_tsv_logger でヘッダー行を出力するように修正。
  • ヘッダー行の出力を抑止する指定マクロ(BUG_WITHOUT_TSV_LOG_HEADER, BUG_WITHOUT_TSV_PROFILE_HEADER, BUG_WITHOUT_TSV_COVERAGE_HEADER)の追加。
  • BUG_DISABLED_PSAPI指示マクロの追加( このマクロが定義されると bug_enum_module_version_info() の実装を行わない )。
  • QueryPerformance() の結果を秒+マイクロ秒単位へ変換して表示を行う bug_QueryPerformanceSecond_stamp の追加。
  • OSVERSIONINFOEX まわりで WINVER の判定が精確でなかった箇所の修正。
  • bug_logger::stamp を private に変更し、bug_logger::get_new_stamp(), bug_logger::get_last_stamp() を追加。
  • bug_drive_info() の出力に sectors-per-cluster と bytes-per-sector を追加。
  • BUG_DEFINE_GLOBAL_LOGGER と BUG_DEFINE_GLOBAL_PROFILER の追加。
  • bug_windows_system_info() の追加。
  • bug_file_hash() を追加。
  • bug_enum_module_hash() を追加。
  • bug_logger::get_instance() の追加および BUG_LOG マクロの修正(ただのリファクタリング)。
  • bug_logger::get_process_id() および bug_logger::get_thread_id() をクラスの外に出しに bug_get_process_id() および bug_get_thread_id() に変更(ただのリファクタリング)。
  • 不必要な #include <vector> を削除。
  • #pragma warning(disable:1011) は VC じゃなくて Intel ででる警告なので icc に限定。

...今回、いろいろ手を入れましたが、やはり一番大きいのはプロファイル対応とカバレッジ対応ですね。こちらの機能の使い方に関してはプロファイル&カバレッジ測定サンプルを参照して下さい。

プロファイルもカバレッジも癖が強い点にはご注意ください。プロファイルについてバグベアード独自のスコープについて把握する必要がありますし、カバレッジも if 文限定でしかも一切通過しかなかった if 文は列挙されませんし。ただ、他にプロファイリングツールやカバレッジ測定ツールを利用されていないのでしたら無いよりは確実にマシですし、これらのツールはその有る無しの差がとても大きな存在ですので癖の強いところを差し引いてもオススメに値すると考えています。