VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 題名: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: もりお
- 日時: 2011/01/10 18:26:57
- ID: 27984
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: よねKEN
- 日時: 2011/01/10 19:12:14
- ID: 27985
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: もりお
- 日時: 2011/01/10 21:47:33
- ID: 27986
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: shu
- 日時: 2011/01/11 0:13:44
- ID: 27987
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: もりお
- 日時: 2011/01/11 10:30:05
- ID: 27988
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: shu
- 日時: 2011/01/11 12:50:03
- ID: 27989
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: もりお
- 日時: 2011/01/11 21:11:46
- ID: 27994
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: VBScript で LinkedList に値を 10000 回追加するとスタックオーバーフローが発生する
- 著者: もりお
- 日時: 2011/01/11 21:53:49
- ID: 27995
- この記事の返信元:
- この記事への返信:
- ツリーを表示
2011/01/10(Mon) 18:33:00 編集(投稿者) OS 名:Microsoft Windows 7 Home Premium OS バージョン:6.1.7600 N/A ビルド 7600 システムの種類:X86-based PC プロセッサ:x64 Family 6 Model 23 Stepping 10 GenuineIntel ~1795 Mhz 物理メモリの合計:3,033 MB VBScript で LinkedList を実装しています。 LinkedList オブジェクトに値を 10000 回追加すると、処理自体は最後まで行われるのですが、 処理が終わったあとに下記内容の例外ダイアログが表示されます。 [Window Title] Microsoft R Console Based Script Host [Main Instruction] Microsoft R Console Based Script Host は動作を停止しました 問題の署名: 問題イベント名: APPCRASH アプリケーション名: cscript.exe アプリケーションのバージョン: 5.8.7600.16385 アプリケーションのタイムスタンプ: 4a5bc670 障害モジュールの名前: ntdll.dll 障害モジュールのバージョン: 6.1.7600.16559 障害モジュールのタイムスタンプ: 4ba9b21e 例外コード: c00000fd 例外オフセット: 0005204a OS バージョン: 6.1.7600.2.0.0.768.3 ロケール ID: 2057 追加情報 1: fcea 追加情報 2: fcea164eb3423e7b888024d6cfad1fda 追加情報 3: d890 追加情報 4: d8903a5f3e1afec7b323857d00e0d88f google で例外コード c00000fd を検索したところ、スタックオーバーフローのようです。 下記のコードで例外が発生することを確認しました。 LinkedList オブジェクトに値を追加する回数が 8000 回以下だと、例外は発生しませんでした。 8888 回だと、例外は発生したりしなかったりでした。 10000 回以上だと、例外は必ず発生しました。 スタックオーバーフローの例外が発生する原因を教えてください。 みなさまの環境におきまして例外が発生するかだけでもお教えいただけるとありがたいです。 よろしくお願いします。 Option Explicit call main() function main() call println("start") dim list : set list = new LinkedList.init() dim i : for i = 1 to 10000 call list.add(i) next call println("complete") end function function println(value) call wscript.stdout.writeline(value) end function class LinkedListNode dim value dim nextNode function init(value_) value = value_ set init = me end function end class class LinkedList dim head dim tail function init() set head = new LinkedListNode.init(empty) set tail = head set init = me end function function add(value) set tail.nextNode = New LinkedListNode.init(value) set tail = tail.nextNode end function end class