タグ

c++とdebugに関するakishin999のブックマーク (5)

  • 拡張ライブラリをデバッグするには - tuedaの日記

    Rubyの拡張ライブラリと言うと難しそうだが、要するにC++で作った共有ライブラリ(.so)なので デバッグ情報つきでコンパイルすればデバッガーでブレイクポイントで止められるよな、と思ってやってみた。 Ubuntu10.04, デバッガーはkdbg. extconfで$CFLAGSに-gを追加する。注意:C++でもここは$CPPFLAGSではなく$CFLAGS。 $CPPFLAGSの方に指定するとおかしなオプションも一緒に渡される。ここextconf.rbの作りがおかしい。 $CFLAGS = " -g " コンパイルしてm3g.so(私の場合)を作ったらkdbを立ち上げて 「File」-「excecutable」で /usr/bin/ruby を指定。 「Execution」-「Arguments」の「Arguments」タブで引数にデバッグしたいRubyスクリプトを指定。ここでは a.

    拡張ライブラリをデバッグするには - tuedaの日記
  • BoostのVisual Studio Debugger Visualizers - Faith and Brave - C++で遊ぼう

    Visual Studioには2005からDebugger Visualizersという機能がこっそり入っていて そのおかげでSTLコンテナの状態がデバッグウィンドウで見やすくなっています。 デフォルトでDebugger Visualizersが有効になっているので、 vectorをデバッグしてみると以下のようにデバッグウィンドウに表示されます。 Debugger Visualizersを無効にした場合は以下のように表示されます。 これを見れば、Debugger Visualizersのおかげでどれだけ見やすくなっているかがわかると思います。 なんだかよくわからない値ではなく、要素数と要素がはっきりわかるようになっています。 Debugger Visualizersは、コンパイラに同梱されたライブラリのみに適用されるだけでなく ユーザー定義のライブラリにも適用することができます。 Visu

    BoostのVisual Studio Debugger Visualizers - Faith and Brave - C++で遊ぼう
  • 第1回 関数フローの採取 | gihyo.jp

    はじめに DTrace とは 皆さんは DTrace をご存知でしょうか? DTrace は Sun Microsystems のブライアン・キャントリル(Bryan Cantrill)氏によって開発された、汎用情報採取のフレームワークです。 キャントリル氏へのインタビューでも語られているように、カーネルの動作状況を調査/確認することは、これまで非常に困難な作業でした。 しかし、DTrace の登場により、実際に稼動中のシステムのカーネルからも、安全に(かつ低コストで)情報を採取できるようになりました。 また、DTraceによって解析が容易になったことで、これまで解決することができなかったSolarisカーネルの(潜在的だったものも含めた)実装上の問題も、多数改善することができたのだそうです。 カーネル開発に関わったことがある方ならもちろん、通常のアプリケーション開発であっても、次のような

    第1回 関数フローの採取 | gihyo.jp
  • ICU の解放順序でハマった - IT戦記

    ちょっとメモ 以下のようなコードを書いて失敗した。 #include <boost/shared_ptr.hpp> #include <unicode/uclean.h> #include <unicode/ucnv.h> int main() { UErrorCode status = U_ZERO_ERROR; u_init(&status); // (snip) boost::shared_ptr<UConverter> ucnv(ucnv_open("Shift_JIS", &status), ucnv_close); // (snip) u_cleanup(); } u_cleanup より後に ucnv_close が呼ばれてしまうのが問題。 valgrind で検出 このコード問題があるのに、普通にエラーも何もでないので気が付かない。 valgrind を使ったら、 stil

    ICU の解放順序でハマった - IT戦記
  • C++ のプログラムのデバッグを楽にする方法

    メディア関係者向けお問い合わせ先 メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。

    C++ のプログラムのデバッグを楽にする方法
  • 1