2009-06-08 13 views
0

私のチームが取り組んでいるプロジェクトは、開発環境(Visual Studio 2005)がインストールされていないコンピュータに展開する必要があるところまで達しています。私たちが最初に持っていた依存関係の問題を修正しましたが、まだ問題があります。プログラム展開に失敗する

これで、インストーラが終了すると、プロジェクトはWinMainに入る前にどこかで立ち往生します。 13MBのRAMしか必要としませんが、CPUサイクルの50%を占めます。

どのようにこの問題をデバッグするための提案がありますか?

編集:明確化 - これはC++プロジェクトです。

+0

例外もエラーもスローされませんか?コードでは、例外を使って何をしていますか?イベントビューアには何もありませんか?あなたが言うとき、winmainに入る前に...あなたはあなたのメインフォームを意味しますか? – curtisk

+0

私たちのプログラムは完全コードベースです。フォームは使用しません。 WinMainは、Windowsの作成を含むすべてがセットアップされる場所です。例外やエラーはなく、私たちのコードにはまったく反応しません。 –

+0

おそらくこれがC++プロジェクトであることを明確にするべきです。 –

答えて

2

グローバル変数の初期化中にハングする可能性はありますか?これはWinMainよりも前に起こり、グローバル変数のコンストラクタからはどのコードも実行できます。また、ビジーなスレッドのスタックを、Process Explorerを使用して調べてください(意味のあるスタックトレースを取得するためにPBDを展開してください)。スタックトレースは、そのスレッドがどこにぶら下がっているかを明確にする必要があります。

0

アプリケーションのどの部分が正常に実行されたかを参照するコンソールに印刷ステートメントを出力する、古いデバッグに頼る必要があるかもしれません。 IDEがターゲットマシンにインストールされていなければ、デバッグのオプションはあまりありません。

+0

私たちは試しました。プログラムはWinMainに決して入らないので、それを見る方法はありません。 –

+0

どのオブジェクトもグローバルに宣言されていますか?任意のコンストラクタが実行されていますか? –

+0

もちろんデバッグのオプションがあります! Windowsデバッガは軽量で、実際にはインストールせずに展開できます。 既に提案されているように、プロセスエクスプローラでビジー状態のスレッド(メインスレッドになる)のスナップショットを作成し、ここに投稿します。 – deemok

0

実行中のVistaまたはWindows 7の場合は、タスクマネージャー(右クリックして[ダンプファイルの作成]を選択)からメモリダンプを作成し、それをデベロッパーのコンピュータに転送してシンボルをロードすれば、当時。

関連する問題