• 締切済み

DBGファイルが見つからないか開けません。の意味とは?

こんにちは。 初歩的な質問をさせて頂きます。 VC++.NETを購入しまして、「今からはじめる・・」のテキスト通りにHellow,Worldの表示をコンパイル・実行させました。 その時に、下記のような警告メッセージが出てきます。 (メッセージ4行の内、2行を抜粋) 'test.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 プログラム '[708] test.exe: ネイティブ' はコード 0 (0x0) で終了しました。 デバック用ファイルがないと言うことのように思いますが、この意味は何でしょうか。 また、表示させないようにする方法を教えてください。

みんなの回答

  • z64423
  • ベストアンサー率53% (26/49)
回答No.1

自分でプログラムを作ってビルド (コンパイル)すると   *.exe (または *.dll)   *.pdb というファイルができます。 ※*.obj 等は省略してます。 *.exe/dll は実行ファイル、*.pdb がデバッグ情報ファイルです。 この *.pdb ファイルには、ソースファイル名とか関数名、引数の数、 変数名などのデバッグのための情報が入っています。 そのおかげで、デバッガ (Visual-C++デバッガ) で実行したときに、 ブレークポイントで止めたり、ステップ実行できたり、変数の値を 表示したりできるわけです。 デバッガはデバッグ対象の *.exe/dll を読み込むときに、 依存関係のあるほかの exe/dll も読み込み、 同時にそのデバッグ情報ファイル *.pdb/dbg を探します。 見つかった場合は読み込み、 無い場合は「見つかりませんでした」と表示します。 どんなプログラムも Windows 上で動いている限りは OS の API を 呼び出します。 その API は Windows に最初から入っている exe や dll (ntdll.dll など) の 中にあります (つまり自作 exe/dll と依存関係にあります)。 そして、Windows の exe や dll にはデバッグ情報ファイル *.pdb (または *.dbg) ファイルは付いてきません。 ですから、「必要な DBG ファイルが見つからないか、開けません。」 というメッセージは必ず表示されてしまいます。 手元には Visual-C++6.0 しかないので .Net の場合も同じか 分かりませんが、*.exe/dll ファイルを右クリックして出てくるメニューから 「View Dependencies」を選ぶと、 その exe/dll が使用する(依存関係がある) dll がすべて表示されます。 ※Dependency(depends.exe) は http://www.dependencywalker.com/  からもダウンロードできます。 で、「見つかりません」メッセージ表示させない方法ですが、 "デバッグ情報ファイル *.pdb/dbg が無くても表示させない"方法は分かりません。 ですが、Windows 側 exe/dll のデバッグ情報をインストールすれば、メッセージは出なくなります。 その手順や意味は http://www.microsoft.com/japan/whdc/DevTools/Debugging/default.mspx に書いてありますが、自分でやって見たものの、うまくいかなかったため、 説明はやめときます (失礼)。

tosi0000
質問者

お礼

詳しい説明有難う御座います。 大変参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 必要なDBG ファイルが見つからないか、開けません。と出て、実行できません。

    こんにちわ。 VC++.NET初心者です。 ビルドは正常に終了し、実行してみるのですが、表示できずに中断してしまいます。 そして、下記のメッセージが大量に表示されます。 'd.exe': 'D:\o\10.1.0\Client_1\BIN\ORASQL10.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 'd.exe': 'D:\o\10.1.0\Client_1\BIN\ORACORE10.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 'd.exe': 'D:\o\10.1.0\Client_1\BIN\ORANLS10.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 'd.exe': 'D:\o\10.1.0\Client_1\BIN\ORAUNLS10.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 調べたところ、このメッセージは無視しても良いとのことなのですが。 実行しても画面が出ずに困っています。 前までは出ていなかったはずなのですが、どうしてでしょうか。

  • VC++2005で、64bitのネイティブコードにコンパイルするには?

    VC++2005で、64bitのネイティブコードにコンパイルするには、clのオプションに何を付ければよいでしょうか? また、DLLやEXEを見てこれは64btネイティブと判定する方法はありますか?

  • ソースファイルを追加すると、プログラムが動かなくなる。

    こんにちは。 VC++6.0を使い、先輩が作ったプログラム(デバッグ済み、実行の確認済み)に、 "Beep(400,100)"を追加して、リビルドを行った。 リビルドがうまくいったが、実行が全くできなかった。(途中でPCがハングアップしたようです。ウィンドの"×"をクリックすると、"プログラムが応答していません"とのメッセージBOXが表示された。) デバッグウィンドに下記のメッセージが書かれました。 D:\USB\確認用\LI01Check\Release\LI01Check.exe' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\System32\ntdll.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\WinRTUSB.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\kernel32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\user32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\gdi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\imm32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 'C:\WINNT\system32\MFC42LOC.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。 私は、VC++がなので、ぜんぜんわかりません。よろしくお願いします。同じプログラムがうまく実行できた事もある。ただ、一度エラーが出ると、修正前のプログラムも実行できなくなる。 (エラーリストにリストアップされているdllファイルの存在も確認してあります。) 初心者なので、よろしく、お願いします。

  • bcc コンパイルしたファイルが実行できない。

    sea_clear_skyです。 環境 BCC55コンパイラ OS XP SP3 hello worldと表示させるプログラムは、コンパイルして、コンソールで表示させることはできるのですが、MYSQLに接続して、 データを表示させるプログラムは、コンパイルして、リンクして、 EXEファイルを作れるのですが、そのできたEXEファイルを実行しようとすると、問題が発生したため、ファイル名.EXEファイルを 終了しますと表示され、コンソール画面に何も表示されません。 以前は、mysqlに接続させて、コンソールに表示させることは できました。BCCコンパイラを標準コンパイラにしたりできるのでしょうか? VC++ C#.NETも使用しています。 この二つのコンパイラとBCCは共存できないのでしょうか? よろしくお願いします。

  • 自作インクルードファイル

    こんにちわ。 いまVC++6.0で開発しようとしています。 自作のincludeファイルを作成し,親プログラムをコンパイルしようと しますが,そのincludeファイルが親プログラムと同じパスに あるときはコンパイルできますが, 別のフォルダに置くと, fatal error C1083: インクルード ファイルがオープンできません。 'XXXXXX.H': No such file or directory cl.exe の実行エラー と出てしまいます。 そこで[設定]の"インクルードファイルのパス"の箇所を 自作インクルードファイルがある場所に設定したのですが, やはり同じエラーメッセージが出ます。 どうすれば読めるようにできるのでしょうか? 教えてください。 よろしくお願いします。

  • CGIで、ファイルI/Oをしたい!

    インターネットプログラミングにおいて、以下のことを教えてください。 Webサーバ:WinNT4.0 IIS CGI :VCで作成(Cです) HTMLのサブミットより、EXEをコールし、そのEXEの中でDLLをコールして 処理を行っているのですが、DLLの中でファイルOPENを行ったところ、アプリケーションエラーが出てしまいます。 このような、EXEからDLLコール・DLL内でファイルのI/Oなんてことはしては いけないのでしょうか? このやり方が、おかしいのであれば正しいやり方を教えて頂ければ助かります。

    • 締切済み
    • CGI
  • VC++2010Exデバック実行エラー

    VC++2010Expressのデバック実行時にエラーが出て困っています。 VC++初心者レベルです。 宜しくお願い致します。 VC++2010Expressにて、OpenCV2.2を使用したプログラムを組むため学習中です。 OSはXPです。 OpenCVのサンプルプログラムを includeファイル、libファイルのパス(デバッグ用lib)の設定をして、 ビルドは正常に完了するのですが、デバック実行時(メニューバーの三角ボタン)に エラーが発生し、下記文面のVC++のエラーダイアログボックスがでます。 ==== imgCapture.exe の 0x7c94e4ff (ntdll.dll) でハンドルされていない例外が発生しました: 0xC0000235: NtClose は NtSetInformationObject 経由のクローズから保護されているハンドルにコールされました。 ==== 1.OpenCVが原因の可能性 OpenCVの関数  cvCaptureFromCAM(0) の前に矢印がついて止まっており、OpenCV2.2が最近出たばかりなので、 そのバグではないかと疑いましたが、 別PCの同様の環境で同じプロジェクトをビルドし、デバック実行すると、問題なく動作しました。 2.VC++2010Expressのプロジェクト設定が原因の可能性 上記同様、同じプロジェクトで別PCで動作しているため問題ないようです。 3.VC++関連が原因の可能性 現在使用しているPCは、もともとVC++2008Expressをインストールしておりましたので、 アンインストールせず、VC++2010Expressをインストールしてしまったことが原因かと考え、 VC++2008Express、VC++2010Express、関連アプリケーションをアンインストールして、 VC++2010Expressのみインストールしなおしてみましたが、解決しませんでした。 4.環境変数の可能性 ビルドで生成された.exeファイルを直接実行すると問題なく実行されましたので、 dllのパス設定は問題ないようです。 ビルドで生成されたexeが直接実行できるので、VC++関連が原因だと考えているのですが、 VC++2010Expressをインストールしなおしても解決しないため、お手上げ状態です。 問題なくデバック実行できる別PCと同じ設定にしているつもりですが、見落としがあるかも知れません。 解決方法、見落とし、これを試してみてはなど、気がつかれたことがありましたら アドバイスよろしくお願いいたします。

  • スタティックライブラリファイル作成時のデバッグセッションの実行可能ファイル

    VisualC++2008ExpressEditionを使用しています。 スタティックライブラリファイルを作成しようとしているのですが、コンパイルしようとすると、「デバッグセッションの実行可能ファイル」というタイトルのウィンドウが現れ、「デバッグで使用する実行可能ファイル名を指定して下さい。」と出てきます。 libファイルはdllと違いコンパイル時に読み込まれてしまうため、テストしたかったら、EXEファイルをコンパイルして作り直さないといけないと思うのですが、ここでいうデバッグで使用する実行可能ファイルとは、どの様なファイルを指しているのでしょうか? 宜しくお願いします。

  • Cコンパイラ(gcc)について

    はじめまして。 C言語のコンパイラについてお尋ねしても宜しいでしょうか。 以下のファイルが存在します。 ・test.c(C言語のソースファイル) ・test.exe(上記ソースをコンパイルしたもの。Windows環境で現在稼動してます) test.cの中身を一部変更し、コンパイルする必要があるのですが、 (恥ずかしながら、コンパイルした人間はもう居ないので) 何のコンパイラを使ったか、判りません。 コンパイルするときに使用したであろうコマンドがあります。 gcc test.c -WALL -03 -o test.exe 察するに、gccというコンパイラを使用したと思い MiniGW (http://yanchde.gozaru.jp/mingw/wingw_start.html) を使用してコンパイルをしてみました。 コンパイルは通るのですが、出来上がるexeファイルのサイズが 非常に小さいです。 (オリジナルのtest.exeは500KB以上ありますが、今回コンパイルで出来たものは40kbほどです) この場合、、オリジナルのtest.exeと今回コンパイルしたexeは 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。

  • ファイルを消せない

    テキストファイルをある処理で作成しました。 デバック中に作成したファイルの中にうまくCLOSE されないのがあったようで、OSから削除しようとすると使用中ですというメッセージが表示されます。 これを簡単に削除するようにする方法があったら 教えてください。 OSはwin2000serverです。

このQ&Aのポイント
  • GoogleChromeで印刷する際にページの左に綴じ白(余白)をつけたいのですが、設定方法がわかりません。何か方法がありましたらご教授下さい。
  • 使用環境はWindows10で、接続は有線LANです。関連するソフト・アプリはGoogleChromeです。電話回線はひかり回線です。
  • GoogleChromeの印刷設定から余白を調整する方法について教えてください。
回答を見る