問題タブ [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.

0 投票する
9 に答える
112441 参照

memory - 「スタックオーバーフロー」はどのように発生し、どのように防止しますか?

スタック オーバーフローはどのように発生し、それが発生しないことを確認する最善の方法、または特に Web サーバーで発生しないようにする方法はありますが、他の例も興味深いでしょうか?

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

c - スタックオーバーフローの原因は何ですか?

これは私の質問のトピックがフォーラムの名前に似ているという偶然の一致だと思われるかもしれませんが、実際には「スタックオーバーフロー」という用語をグーグルで検索してここに到達しました。

Cを使用してプログラムするOPNETネットワークシミュレータを使用しています。大きな配列サイズで問題が発生していると思います。ある種のメモリ割り当ての制限に直面しているようです。それは、OPNET、Windows、私のラップトップメモリ​​、またはおそらくC言語に関係している可能性があります。この問題は、要素の総数が数千の整数になるネストされた配列を使用しようとすると発生します。全体的なメモリ割り当ての制限を超えていると思います。この上限を増やす方法があるかどうか疑問に思っています。正確な問題の説明は次のとおりです。

私は基本的にルーティングテーブルを持っています。これをrouting_tbl[n]と呼びましょう。これは、30ノード(ルーター)をサポートしていることを意味します。ここで、このテーブルの各ノードについて、情報を保持します。path [p]と呼ばれる配列内の、約数百(数百)の使用可能なパス。繰り返しますが、この配列の各パスについて、それに属するノードのリストをhops[h]という配列に保持します。したがって、少なくともnph整数に相当するメモリを使用していますが、このテーブルには他の情報も含まれています。同じ関数で、ほぼ40,000個の整数を消費する別のネストされた配列も使用しています。シミュレーションを実行するとすぐに、スタックオーバーフローについての文句を言うのをやめます。ルーティングテーブルの合計サイズを小さくすると機能します。何が問題を引き起こしていると思いますか、そしてそれをどのように解決することができますか?アリに感謝します

0 投票する
10 に答える
155279 参照

c# - StackOverflowException を防止および/または処理するにはどうすればよいですか?

私が書いている内のメソッドStackOverflowExceptionへの呼び出しから取得している を防止または処理したいと思います。問題は、ユーザーが無限に再帰的な を記述できるように思われ、メソッドの呼び出しで爆発するだけです。(つまり、問題は、通常、このような例外の原因である典型的なプログラム エラーだけではありません。)XslCompiledTransform.TransformXsl EditorXsl scriptTransform

許可される再帰の回数を検出および/または制限する方法はありますか? または、このコードが爆発しないようにするための他のアイデアはありますか?

0 投票する
15 に答える
748085 参照

java - StackOverflowErrorとは何ですか?

とは何ですかStackOverflowError、何が原因で、どのように対処すればよいですか?

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

asp.net-mvc - linq クエリが原因の StackOverflowException

編集#2:質問は途中で解決しました。下を見てください

フォローアップの質問として、私が以下でやろうとしていることを解決するための邪魔にならない方法を知っている人はいますか (つまり、無限ループをトリガーせずにオブジェクトを相互にリンクします)?


asp.net-mvc Web アプリケーションを作成しようとすると、StackOverFlowException が発生します。コントローラーは次のコマンドをトリガーします。

GameService は次のように処理します (WithCountryId は拡張機能です)。

GameRepository は次のように処理します。

GetGames() メソッドにより、StackOverflowException が発生します。

私のビジネス オブジェクトは linq2sql クラスとは異なります。そのため、それらに select new を入力します。

タイプ 'System.StackOverflowException' の未処理の例外が mscorlib.dll で発生しました


編集#1:犯人を見つけました。それは次のメソッドです。GetCountries()メソッドをトリガーし、その代わりにGetSubRegions()を再びトリガーします。

ここで何か他のことを考えなければならないかもしれません:)コーヒーが多すぎるためにオブジェクト指向の考え方で考えると、それが起こります

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

delphi - EStackOverflow が非推奨になってからどのくらい経ちますか? また、それを置き換えるものは何ですか?

SysUtils.pas で定義されている EStackOverflow は、Delphi 2009 で非推奨としてマークされていることに気付きました。確認したところ、2007 年には非推奨としてマークされていました。Delphi 7 のインストール ディスクはここにありますが、いつわかるか誰かに尋ねようと思いました。それは廃止されました。

さらに、誰かが理由を知っていますか、そしてそれを置き換えるものは何ですか? 再帰によってスタック オーバーフローを引き起こすテスト アプリケーションを作成しましたが、それでも EStackOverflow 例外が発生しますが、それ専用のハンドラーを追加すると、

[DCC 警告] Unit57.pas(85): W1000 シンボル 'EStackOverflow' は非推奨です

EStackOverflow が EExternal から派生していること、および EExternal をトラップして ExceptionCode の STATUS_STACK_OVERFLOW をチェックできることはわかっていますが、それでも EStackOverflow 例外がスローされるため、これは不要のようです。

これは、自分のコードで EStackOverflow をスローするのを思いとどまらせるためだけですか?

(はい、 StackOverflowという Web サイトでEStackOverflowについて質問するのは皮肉なことだと思います。はい、私は完全に真剣です .)

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

c - C でのスタック オーバーフローの悪用

質問は、実際には C のスタック オーバーフローに関するものです。私は一生やり遂げることができない割り当てを持っています。gdb のすべてを見てきましたが、それを理解することはできません。

質問は次のとおりです。

わかりましたので、最初の質問を正しく取得することができました。これは、メイン パスで明示的に呼び出されていない 2 つの関数のいずれかを任意に呼び出すことです。ちなみに、これはプログラムを変更せずに実行中に行う必要があります。Nに設定してプログラムを実行することでこれを行いました。これにより7、フレームの関数ポインターが表示され、混乱したまたはのメモリアドレスでvictim_func書き込み、動作します。(私は 64 ビット マシンを使用しています。そのため、EBI ポインターの幅が 1 ではなく 2 int であるため、7 にする必要があります)a[7]shell_call

私の質問は次のとおりです。関数に渡される引数をどのように制御できshell_codeますか? すなわち。stringに を書くにはどうすればよいですかchar* c。全体のポイントは、プログラムのみを実行して、psなどの unix コマンドを実行することです。

EBI ポインタをpsの 16 進表現で記述し、引数リストをshell_callそれに設定することを考えましたが、うまくいきませんでした。argsvまた、引数を入力して、の引数リストをメインに設定しようとshell_callしましたarg_listが、どちらも機能しませんでした。

2番目のバージョンは機能するはずですが、新しいスタックフレームの引数リストを正しく設定していないと思います(関数ポインターの最初の部分であるため、 に書き込み、 and を書き込むことでそれをa[8]行いましたが、おそらくこれらは のパラメータであるため正しくありません。では、 のパラメータにアクセスするにはどうすればよいですか?0a[9]=736ca[10]=0000victim_funcshell_call

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

excel - Long データ型のオーバーフロー

VBA Excel で素因数分解を実行しようとしていますが、longデータ型の制限に達しています -

実行時エラー 6 オーバーフロー

これを回避し、VBA 内にとどまる方法はありますか? 明らかに、より適切な別のプログラミング言語を使用することになることは承知しています。


Lance のソリューションは、大きな数値を変数に入れることができるようになりました。ただし、関数を適用しようとすると、たとえばMODbignumber 、エラーメッセージで失敗しますMOD 2

実行時エラー 6 オーバーフロー

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

asp.net - カッシーニ(別名VS Dev Server)のスタック制限とは何ですか?

256kの制限があるIIS6/2k3でStackOverflowException(質問しないでください。私のせいではありません)が発生していますが、VSデバッガーでは例外は発生しません。

理解の問題として、私は知りたいのですが、カッシーニのスタック制限が何であるかをグーグルで検索できませんでした...実際にそれがある場合はどうなりますか?

0 投票する
2 に答える
5985 参照

java - Java スタック オーバーフロー エラー

こんにちは、Sun アプリケーション サーバー 8.2 ドメインを再起動した後、このエラーに遭遇することがあります。

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:255) での javax.servlet.ServletExceptionソース不明) (sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25))、java.lang.reflect.Method.invoke(Method.java:585)、org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil) .java:249) で java.security.AccessController.doPrivileged(Native Method) で javax.security.auth.Subject.doAsPrivileged(Subject.java:517) で org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java) :282) org.apache.catalina.core.ApplicationFilterChain の org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165) で。internalDoFilter(ApplicationFilterChain.java:257) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161) at java .security.AccessController.doPrivileged(Native Method) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:723) org .apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:484) org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:417) org.apache.catalina.core.ApplicationDispatcher.access$000( ApplicationDispatcher.java:80) org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:313) で java.security.AccessController.doPrivileged(Native Method) で (ApplicationDispatcher.java:95) を実行します。org.apache.catalina.core.StandardHostValve で。 custom(StandardHostValve.java:448) org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:339) org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:282) org.apache .catalina.core.StandardHostValve.postInvoke(StandardHostValve.java:184) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java) :132) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551) で org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189) で com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604) で com.sun .enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475) com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371) com.sun.enterprise.web .connector.grizzly.ReadTask.doTask(ReadTask.java:264) com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281) com.sun.enterprise.web.connector.grizzly .WorkerThread.run(WorkerThread.java:83)----- 根本原因 ----- com.sun.security.auth.PolicyFile の java.security.AccessController.doPrivileged(Native Method) での java.lang.StackOverflowError .getPermissions(PolicyFile.java:818) javax.security.auth.SubjectDomainCombiner$3.run(SubjectDomainCombiner.java:357) の java.security.AccessController.doPrivileged(ネイティブ メソッド) の javax.security.auth.SubjectDomainCombiner.combineJavaxPolicy(SubjectDomainCombiner.java:353) の javax.security.auth.SubjectDomainCombiner.combine (SubjectDomainCombiner.java:191) で java.security.AccessControlContext.goCombiner(AccessControlContext.java:390) で java.security.AccessControlContext.optimize(AccessControlContext.java:304) で java.security.AccessController.checkPermission(AccessController.java: 426) で java.lang.SecurityManager.checkPermission(SecurityManager.java:532) で java.security.Security.getProperty(Security.java:724) で com.sun.security.auth.PolicyFile.initPolicyFile(PolicyFile.java:356) ) com.sun.security.auth.PolicyFile.init(PolicyFile.java:269) の com.sun.security.com.sun.security.auth.PolicyPermissions.init(PolicyFile.java:1416) の auth.PolicyFile.getPermissions(PolicyFile.java:869) com.sun.security.auth.PolicyPermissions.elements(PolicyFile.java:1429) のjavax.security.auth.SubjectDomainCombiner.combineJavaxPolicy(SubjectDomainCombiner.java:366) で javax.security.auth.SubjectDomainCombiner.combine(SubjectDomainCombiner.java:191) で

…無限に