タグ

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

  • 「hoge.exeのデバッグ情報が見つからないか、または一致しません。バイナリはデバッグ情報と一緒にデバックされませんでした。」と表示されたら - ginpeiのブログ

    Visual Studio 2005でデバッグをしようとしたが上記のように表示されデバッグができない場合、下記二箇所の設定を変更する。 ソリューション エクスプローラのプロジェクトを右クリック→プロパティ 構成プロパティ → C/C++ → 全般の「デバッグ情報の形式」を「C7 互換 (/Z7)」に 構成プロパティ → リンカ → デバッグの「デバッグ情報の生成」を「はい (/DEBUG)」に 参考:http://blog.livedoor.jp/yosinari4263/archives/50805092.html

    「hoge.exeのデバッグ情報が見つからないか、または一致しません。バイナリはデバッグ情報と一緒にデバックされませんでした。」と表示されたら - ginpeiのブログ
    neumann
    neumann 2013/06/22
    構成プロパティ → C/C++ → 全般の「デバッグ情報の形式」を「C7 互換 (/Z7)」に; 構成プロパティ → リンカ → デバッグの「デバッグ情報の生成」を「はい (/DEBUG)」に
  • http://rarara.cafe.coocan.jp/vc/vctips/debug.htm

    neumann
    neumann 2013/06/22
    afxwin.h afx.h ASSERT() VERIFY() TRACE() OutputDebugString()
  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • メモリリークの自動検出をしてみる - 閑古鳥

    VC++ のライブラリにはメモリリークの検出機能があります。関数ひとつ呼んでおくだけでアプリケーション終了時にメモリの解放漏れを出力ウィンドウに表示してくれるという便利なものなのですが、実際にこれを使うまでの過程に罠が多いのでメモしておきます。長すぎて我ながらわけがわからないので、興味のある方は最後の参考サイトだけ読んだらいいと思います。 使い方 普通に使う分には簡単です。 stdafx.h の末尾*1に : #if _DEBUG #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) #endif と記述し、main 関数 (MFC であれば CWinApp::InitInstanceとか) 内部で ::_CrtSetDbgFlag(_CRTDBG_L

    メモリリークの自動検出をしてみる - 閑古鳥
    neumann
    neumann 2008/07/31
  • Windows Programing Tips

    1 はじめに 環境はVisual C++ .NET (2000 or 2003) + DirectX SDK 8.1b.VC6でも通用することが多いと思う. 2 printf デバッグ もっとも原始的なデバッグ法はやはりprintfであろう.要するにコードの怪しいところで変数の値をコンソールに書き出すだけである. Unixで開発しているときは自然と端末を使っているため,単にprintf (バッファリングされると困るので実際はfprintf( stderr, ... )だろう)を使うだけだが,WindowsGUIアプリを開発しているとコンソールが無いためどうしよう…となってしまう. そこで以下の2つ解決策を考えてみる. デバッガに出力する.つまりVisual Studioのデバッグ画面(○○.dllを読み込みました…とか出るウィンドウ)に表示させる.これにはOutputDebugStrin

    neumann
    neumann 2008/05/12
    cout 風 OutputDebugString()
  • Win32アプリケーションのデバッグ方法 [VC++の使い方]

    Win32のデバッグ Win32アプリケーションでは、デバッグ情報をコンソールに出力するようなこともできません。手軽なMessageBox関数を使う方法と、デバッグをサポートするAPIについて解説していきます。 MessageBoxを使う MessageBox関数は簡単なデバッグには便利です。例えば MessageBox( NULL, "呼ばれたよ", "title", MB_OK); とすれば、次のようなダイアログが表示されます。 メッセージボックスの例 MessageBoxで現れるダイアログはモーダルなので、ダイアログを閉じるまで制御は帰ってきません。例えば、アプリケーションが異常終了してしまう場合は、原因となりそうな周辺に1行づつMessageBox関数を挿入すれば、どこで異常終了が発生しているかを判断できます。 ただし、MessageBoxには、printf関数のように変数の値を表

    neumann
    neumann 2008/04/18
    OutputDebugString
  • C と C++での例外処理、第 17 部

    Microsoft Learn. Spark possibility. Build skills that open doors. See all you can do with documentation, hands-on training, and certifications to help you get the most from Microsoft products. Learn by doing Gain the skills you can apply to everyday situations through hands-on training personalized to your needs, at your own pace or with our global network of learning partners. Take training Find

    C と C++での例外処理、第 17 部
  • 1