問題タブ [crash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
874 参照

.net - 実行可能パスにスペースが含まれていない限り、Oracle と通信するとアプリケーションがクラッシュする

.NET アプリケーションに x ファイルの問題があります。というか、Win32 と .NET のハイブリッド アプリケーションです。

オラクルと通信しようとすると、死ぬだけです。消えます。空の大きな黒い虚空に行きます。イベント ログ メッセージも例外も何もありません。

代わりに MS SQL Server と対話するようにアプリケーションに要求するだけで、OracleConnection と関連クラスの使用を SqlConnection と関連クラスに置き換える効果があり、期待どおりに動作します。

今日、私たちは突破口を開きました。

何らかの理由で、ある顧客は、すべてのアプリケーション ファイルをデスクトップ上のディレクトリに配置することで、Oracle でも期待どおりに動作することに気付きました。ディレクトリをドライブのルート、または C:\Temp に移動すると、クラッシュが再発しました。

基本的に、デスクトップ上のディレクトリから実行するとアプリケーションが動作し、ルートのディレクトリから実行するとアプリケーションが失敗するという 100% の再現性がありました。

今日、重要な違いは、ディレクトリ名にスペースがあるかどうかであることがわかりました。

したがって、これらのディレクトリは機能します。

一方、これらはそうではありません:

これを読んでいる誰かが同様の動作を見て、「ああ、オラクルの華やかなドライバー構成でフロブをいじる必要がある」などのことを望んでいます。

誰?


フォローアップ#1: OK、今 procmon の出力を処理しました。カスケード エラーをトリガーするウィンドウを開こうとするボタンを押したときの両方のファイルです。両方のファイルの上部近くにあり、ずっと下まで追跡します。

ただし、1 つの実行が失敗すると、もう 1 つの実行が続行され、ログ出力の次の数行は次のようになります。

この後、作業実行は引き続き実行され、スレッドが終了してアプリが終了する前に、他の実行が mscorwks.dll ファイルに数回アクセスします。したがって、失敗した実行は上記のファイルに影響しません。


フォローアップ #2: Oracle クライアント ドライバーをアップグレードしようと考えましたが、明らかに 10.2.0.1 が Windows 2003 サーバーおよび XP クライアントで利用可能な最高のバージョンです。


フォローアップ #3:ええと、ブラックボックス ソリューションになってしまいました。基本的に、問題はXPOと Oracle に関連していることがわかりました。XPO には、XPObjectType と呼ばれるシステム テーブルがあり、Oid、TypeName、AssemblyName の 3 つの列があります。私たちが話しているデータベースでOracleがどのように構成されているかにより、列名はOID、TYPENAME、およびASSEMBLYNAMEでした。通常、これは問題にはなりませんが、XPO がスキーマ情報と直接対話し、適切な列名を持つテーブルが存在するかどうかを確認し、XPO は大文字と小文字の違いを処理しないため、不明な列が 3 つある XPObjectType テーブルを認識し、列はありません。それが期待するもののうち。

XPO が現在何をしているのか正確にはわかりませんが、このテーブルを削除して、すべての列名を二重引用符で囲んで正しい大文字と小文字を区別して再作成した場合、問題は発生しません。

フォルダ名のスペースがこれに入る正確な場所はまだわかりませんが、この問題には2つの層がありました。

  1. 短期的な解決策として、アプリケーションがクラッシュするのを防ぎます。
  2. バグの修正、長期的な解決策

現在、ティア 1 は解決されており、ティア 2 はキューに戻され、優先順位が付けられます。いずれにせよ、データ層への大きな変更に直面しているため、少なくともオラクルのすべての顧客がテーブル修正によって実際に問題が解決されることを確認した場合、これは解決する必要がある問題ではない可能性があります.

プロセス モニター (ファイル モニターの兄貴分) は実際には問題を特定できませんでしたが、それを使用して、XPO が構築されたユーザー コードのブレークポイントの後にそれを判断することができたので、Dave Markleによる回答を受け入れます。このテーブルのクエリを実行すると、アプリケーションの終了に関するすべてのエントリがログに記録されるまで I/O は発生しませんでした。そのため、このテーブルが原因であるか、少なくとも何らかの形で問題に影響を与えていると思いました。

この本当の原因にたどり着いたら、投稿を更新します。

0 投票する
4 に答える
22646 参照

c - Mac/Linux のクラッシュに対する Windows の getch() と同等

使用getch()していますが、アプリがすぐにクラッシュします。行うときを含む:

リンクが見つかりませんが、おそらく問題は、バッファリングまたはそれらの行に沿って何か奇妙なことをオフにする必要があることでありcout、クロスプラットフォームコードと連携したい.

を使用するように言われましstd::cin.get()たが、ユーザーが文字や数字を入力してからEnterキーを押して終了するのではなく、キーが押されたときにアプリを終了させたいと思います。

これには何か機能がありますか?コードは Mac (my os) および Windows で動作する必要があります。


リンク/コンパイルは問題ではありません。私はXCodeにインクルード<curses.h>してリンクしますが、Windowsは.-lcurses<conio.h>

0 投票する
5 に答える
1214 参照

c# - 消えるアプリをデバッグする方法

Windows 2003 サーバーには、純粋な .NET 3.5C#アプリ (アンマネージ コードなし) があります。ソケットを介して他のさまざまなリモート システムに接続し、データ ハブのように機能します。問題なく10〜15時間動作しますが、時々消えるだけです. タスク マネージャーを使用してアプリを監視すると、メモリ使用量は一定のままです。

関数ではMain()、アプリの残りの部分の呼び出しをtry .. catch完全に吹き飛ばすブロックにラップします。例外をファイルに記録する catch ブロックは無視されます。テストのために手動で例外を発生させると、catch ブロックが呼び出されます。

try .. catchI doに入る前に:

システムにはワトソン博士がいますが、DRWTSN32.EXE指しているディレクトリには何も書き込まれません。

これを引き起こしている例外をキャッチするにはどうすればよいですか?

0 投票する
6 に答える
15224 参照

c++ - dynamic_castがクラッシュする原因は何ですか?

私はこのようなコードを持っています:

時々それはクラッシュします:

なぜクラッシュするのかわかりません。objはnullではありません(もしそうなら問題ではないでしょうか?)。

ダイナミックキャストがクラッシュする理由は何でしょうか?

キャストできない場合は、NULLを返す必要があります。

0 投票する
1 に答える
2518 参照

python - PycurlWRITEDATAWRITEFUNCTIONの衝突/クラッシュ

WRITEFUNCTIONとWRITEDATAをオフにするにはどうすればよいですか?

pycurlを使用して、curlUtilというクラスを呼び出します。その中に、文字列を返すpageAsString(self、URL)があります。

これを行うには、WRITEFUNCTIONを設定します。今downloadFile(self、URL、fn、overwrite = 0)で、問題を引き起こすopenとself.c.Setopt(pycurl.WRITEFUNCTION、0)を実行します。Intは有効な引数ではありません。

次に、WRITEDATAが値を上書きするか、NOWRITEFUNCTIONの表彰があると想定しました。NOWRITEFUNCTIONが存在しなかったため、WRITEDATAを使用したところ、Pythonがクラッシュしました。

私はreboot()と呼ばれるクイック関数を作成しました。これは、curlを閉じて再度開き、resetを呼び出してデフォルト状態にします。pageAsStringとdownloadFileの両方で呼び出しますが、まったく問題ありません。しかし、私はカールを再初期化したくありません。私が設定したいくつかの特別なオプションがあるかもしれません。

WRITEFUNCTIONとWRITEDATAをオフにするにはどうすればよいですか?

0 投票する
1 に答える
1167 参照

vb6 - VB6:WinXPでCapicomがクラッシュする

このクラッシュを理解するための提案はありますか?

<part>14以下のコードは、ロギングとロギングの間で断続的にクラッシュし<part>15ます。 Plaintextはパス文字列です(この場合は"C:\Documents and Settings\Brian\Desktop\Joy\"、そのような喜びが明らかに欠如しているにもかかわらずです。これはある種の邪悪な記憶の問題の症状であると感じています。Capicom2.1.0.1と2.1.0.2の両方で試しました。後者は標準のエラー報告メッセージを表示し、前者はサイレントに終了します(つまり、プログラムが自動的に閉じます)。Vistaでは正常に動作しましたが、同じ問題で他の誰かのXPマシンでテストしました。

編集:問題を引き起こしているのはデータではありません。これをテストするために、手動でデータを渡しています。正常に動作します。迷惑なことに、テストコードを初期化に入れるとバグがなくなりました。邪悪な特異なバグ:(。おそらくメモリの問題:(

編集2:書き直され、ここには何もありません、そして閉じられました。これ自体と実際には同じ質問ではありませんが、この質問は問題の深刻な誤解に基づいていました。

0 投票する
3 に答える
13992 参照

visual-studio-2008 - Visual Studio 2008のクラッシュログはどこにありますか?

Visual Studio 2008にSP1がインストールされていますが、Moqフレームワークでラムダ式を使用するとクラッシュします。

最初は問題はResharperだと思っていましたが、アンインストールした後もVS2008がクラッシュします。私は毎回問題を再現することができます。

おそらく、VS 2008ではなく、他のプラグインが問題を引き起こしているのではないかと思います...しかし、それは確かではありません。

では、私が見つけようとしているのは、VisualStudioが発生したクラッシュをログに記録する場所です。

残念ながら私はそれを見つけることができません...そこに誰かがそれが存在するかどうか、もしそうならどこを見るべきか知っていますか?

前もって感謝します!

0 投票する
4 に答える
9833 参照

java - JVMクラッシュログファイルの生成を強制できますか?

JVMクラッシュからのログファイルには、ロードされた共有ライブラリや完全な環境など、デバッグに役立つあらゆる種類の情報が含まれています。これらのいずれかをプログラムでJVMに生成させることはできますか?それをクラッシュさせるコードを実行するか、他の方法で?または、別の方法で同じ情報にアクセスしますか?

0 投票する
1 に答える
1944 参照

vb6 - VB6プログラムのクラッシュ:パート2。アクセス違反の修正に関するアドバイス(0xC00000005)

この質問に関連しています。以下の問題を解決するためのアドバイスはありますか?

プログラムで多くの実験をした後、私はいくつかのことを発見しました。

  1. コード行を実行すると、比較的一貫して(90%程度の確率で)クラッシュしますSet Message = New CAPICOM.EncryptedData。この上の行は単なる。であることに注意してくださいDim Message As CAPICOM.EncryptedData

  2. その呼び出しを行う関数は、プログラムの実行の早い段階で呼び出されてもクラッシュしません。エラーの二分探索は問題を見つけるために機能しません。不思議な場所で関数を呼び出すと、バグの発生が確実に防止されるためです。バグが発生した場合、プログラムの再構築が影響を与えるように見えることがあります。はい、それは特異なバグです。同じ問題は、エラーの一時的な二分探索にも当てはまります。プログラムの2つのバージョンを比較するために5時間費やすと、現在症状を示しているのは1つだけですが、両方のバージョンにバグがあることがわかります。生産性はあまり高くありません。

  3. クラッシュはアクセス違反によるものです0xC00000005

  4. WinDbg(Windowsデバッガー)を実行すると、このメモリ位置を読み取るコードが1行しかないことがわかりますLoadPicture(szTmpBMP)。これは、リソースから画像を取得して一時ファイルに貼り付ける恐ろしい関数の最後に呼び出されます。私はこの関数を十分に怖がっていたので、テストのために、への呼び出しに置き換えてからLoadPicture("testcra.bmp")、そのビットマップの恐ろしいリソース関数を呼び出さなかった。これは役に立ちませんでした。このloadpictureの呼び出しを完全に削除しても効果はありませんでしたが、デバッガーは影響を受けるメモリが読み取られているポイントを見つけることができず、影響を受けるメモリは同じ場所にありませんでした。このテストはVMで行われたため、一部のメモリ読み取りは必ずしもデバッガーに表示されるとは限りません。

  5. すべてがVista(私のローカルマシンとVista VMの両方)で完全に機能します。アクセス違反はXPでのみ発生します。

  6. VB6バージョン8176、6.0.8169を使用しています

0 投票する
3 に答える
843 参照

memory - Vista で静的メモリを割り当てるとクラッシュしますか?

Microsoft Visual C++ 2008 Express を使用していますが、かなり厄介な問題があります。XPでは発生しないようですが、Vistaでは回避する方法が見つかりません。変数を非動的に宣言するたびに、それらの合計サイズが約 30 MB を超えると、プログラムは起動時にすぐにクラッシュします。Vista が Win32 以外のアプリを 32 MB のメモリに制限していることは知っていますが、それは私の問題ではないと思います。Microsoft コンパイラを使用していますが、それが win32 コンソール アプリか win32 ウィンドウ アプリかに関係なく発生します。私はちょうど次のように宣言します...

...または変数の任意の組み合わせにより、どこでも同様のサイズになり、それはさようならアプリケーションです。面白いことに、このエラーが存在するにもかかわらず、約 25% の時間で実行されます。ここで基本的なプログラミングが欠けていますか?静的割り当ては時代遅れですか? 動的割り当てを利用するには、アプリケーション全体をやり直す必要がありますか?