問題タブ [stack-overflow]
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.
wcf - .netTiers エンティティをシリアライズする StackOverflowException
私は単純なWCFサービスを持っています:
これが返されると、mscorlib で StackOverflowException がスローされます。何がこれを引き起こしているのでしょうか?
OrderService は NetTiers によって生成されたサービスであり、Order は NetTiers エンティティ オブジェクトです。私が戻ったとき、データはすでにデータベースから取り出されており、準備ができています。WCF のバグ以外に、操作から戻った後に StackOverflowException が発生する可能性があるのは何ですか?
c++ - スタック オーバーフローを引き起こす演算子 ThisClass()
クラスをシンプルに保ち、コンストラクターを定義しないようにしたいので、 Pt data = {0, 5}; を実行できます。だから私は、Pt_tを短いものから長いものに、またはその逆に変換する最良の方法は、このようなことをすることだと考えました。
コンパイラはこれを好まず、リターン pt で演算子 Pt_t を呼び出します。したがって、スタックオーバーフローが発生します。どうすればこれを防ぐことができますか? 私が考えることができる唯一の解決策は、Pt_t pt = {1, 2}; を削除する Pt_t にコンストラクターを使用させることです。できれば保持したいものです。
c - スタック オーバーフローを生成する
GNU/linux でスタック オーバーフローの状態を作成する方法は?
c++ - Visual Studio 2005 で C++ の EXCEPTION_STACK_OVERFLOW 構造化例外を確実にキャッチするにはどうすればよいですか?
バックグラウンド
- Poof-Crash [ 1 ]のあるアプリケーションがあります。吹き飛ばされたスタックが原因であると確信しています。
- アプリケーションはマルチスレッドです。
- " " でコンパイルしてい
Enable C++ Exceptions: Yes With SEH Exceptions (/EHa)
ます。 - SE トランスレーター関数を作成し、それを呼び出し
_set_se_translator()
ました。 set_terminate()
と setupとの関数を書きましset_unexpected()
た。- スタック オーバーフローを取得するには、負荷の高い状態でリリース モードで数日間実行する必要があります。アプリケーションは、問題を確認するために必要なランタイムを達成するのに十分な速度で実行できないため、デバッガーの下で実行することはできません。
- 関数の 1 つの実行時に無限再帰を追加することで問題をシミュレートし、
EXCEPTION_STACK_OVERFLOW
例外のキャッチをテストできます。 - クラッシュ ダンプ プログラムとして WinDBG をセットアップしましたが、他のすべてのクラッシュの問題に関する適切な情報が得られますが、この問題に関する情報は得られません。クラッシュ ダンプには、'Sleep()'ing である 1 つのスレッドのみが含まれます。他のすべてのスレッドは終了しました。
質問
EXCEPTION_STACK_OVERFLOW
私が試したことのどれも、例外を拾うことにはなりませんでした。
リリースモードでの実行時にこの例外が発生する可能性を保証する方法を知っている人はいますか?
定義
- Poof-Crash : アプリケーションがクラッシュし、"poof" して跡形もなく消えます。
(このサイトの名前を考えると、この質問がまだここにないことに驚きました!)
ノート
- スタックサイズを調整して問題をより早く強制し、デバッガーでキャッチできるようにすることについての簡単な回答が投稿されました。それは賢明な考えですが、残念ながら、それが役立つとは思えません。この問題は、無限再帰につながるコーナー ケースが原因である可能性があります。スタックを短くしても、問題がすぐに明らかになることはなく、有効に深いコードで無関係なクラッシュが発生する可能性があります。良いアイデアですが、削除してしまったにもかかわらず、投稿していただきありがとうございます。
sql - CASE WHENステートメントでHSQLDBで1000を超えるアイテムを取得するにはどうすればよいですか?
Hypersonic DB (HSQLDB) で次のクエリを実行しています。
"WHEN" 句の数が約 1000 を超えるとStackOverflowError
、JDBC ドライバーによって Java がスローされますorg.hsqldb.jdbc.Util.sqlException()
。
ここに本当に奇妙な部分があります。CASE
たとえば、100 個の WHEN 句の後にELSE ( CASE foo WHEN ... ) END
. しかし、この書き直しでも、まったく同じ動作が得られます!
HSQLDBマニュアルには、1000の制限やその他の制限への言及はありません。ヘルプ!
java - Java でオブジェクトをシリアル化するときの StackOverflowError
Swing を使用して Java でアプリケーションを作成しています。実行中のシミュレーションでシミュレーション状態を保存およびロードする機能を実装しようとしています。シミュレーション全体がオブジェクトとして保持され、Swing から切り離されます。次のコードを使用して Simulation クラスをシリアル化しようとしています。
しかし、次のエラーが発生します(これは巨大です)。
この例外の原因を誰か教えてもらえますか?
operator-overloading - 削除オーバーロード、再帰オーバーフロー
やあみんな私は簡単なテストを書きました。delete を呼び出して deleteMe を呼び出してから、それ自体を削除します。これの目的は、lib によって割り当てられた obj を正常に削除できるようにすることです。(crtまたはw / eによるクラッシュは望んでいません)。
これを削除すると、スタックオーバーフローが発生します。それがなければ、msvc は 4 バイトがリークしたと言います。test を呼び出さないと 0 がリークします。再帰の問題がある場合はどうすれば削除できますか? -編集-これをより明確にするために。crtが原因で、LIBがプログラムの代わりにdelete(したがってdeleteMe)を呼び出すようにしたい
c - Ubuntuでのスタック実行保護とランダム化
コース割り当ての一部として、バッファオーバーフローを引き起こし、スタックに存在するコードを実行するエクスプロイトコードを作成する必要があります。
次のコマンドでスタックのランダム化をオフにしました。sysctl-wkernel.randomize_va_space= 0しかし、スタック実行保護をオフにする方法が見つかりません。ubuntuにスタックexec保護があるかどうかはわかりません...したがって、最初の質問は、ubuntu 8.10に赤い帽子のexec-shieldのようなものがあるかどうか、ある場合はどうすればオフにすることができるかです。
バッファオーバーフローを引き起こしてスタックから命令を実行しようとしていますが、そうしようとすると、セグメンテーション違反が発生します。
私はubuntu8.1064ビットを持っていますが、プログラムimデバッグは、スタック保護がオフになっているi386マシンでコンパイルされます。