コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
Na ◆QoELVrBXBQCI
2020/3/4 13:22
情報交換
EXECでハングアップまたはBSoD(?)(3号)
SmileBASICSourceに投稿されたあるプログラムで発生した問題です。

元のプログラムから該当部分だけを抽出した検証用プログラムです。
「---TEST0」を実行するとプチコンがハングします。
【73A3NX9F】

エラーに関連する箇所だけ簡潔に書くと以下のようになるはずですが、これを実行してもなぜかハングしません。(私の記憶が正しければこれでハングすることもあったはずですが)
誰か詳しい発生条件がわかったら教えてください。

・スロット0に、
EXEC 1

・スロット1に、
EXEC "PRG3:TEST.LIB"
EXEC "PRG0:TEST.PRG"

・TEST.LIBに、
COMMON DEF TEST T$
?T$
END

・TEST.PRGに、
PRGEDIT 3:PRGDEL -1:EXEC 3
EXEC "PRG2:TEST.LIB"
TEST "A"

また、プチコンver3.6.0で実行すると、真っ黒の謎のエラー画面が出る...と書きましたが、バージョンのせいではありませんでした。ugly777さん本当にすみません。

発生条件には不可解な点があり、
EXEC "PRG3:TEST.LIB"とEXEC "PRG2:TEST.LIB"は別のスロットから実行しないといけないようです。
また、EXECで他のスロットに飛んだあとEXECで戻ってこないと発生しないようです。
さらに、引数なしのDEFでは発生しません。

コメント

アバター
ugly777 2020/3/4 17:12 ◆B7lOIJDWuOqi
BIGの3.6.0はフリーズした(書き忘れ)
アバター
Na 2020/3/4 17:16 ◆QoELVrBXBQCI
私の3DS(3号ver3.6.3)ではホームに戻されることもなくなっちゃったんですけどどうしてでしょうか...()

(SKKBAUIはまだホームに戻してくれるのでそのソースコードを少しずつ削りながら検証中)
アバター
Na 2020/3/4 17:32 ◆QoELVrBXBQCI
検証用プログラムです【73A3NX9F】
---TEST0 を実行してください。
今の私の3DSではここから1行でも削ると発生しなくなります。

でも上に書いたソースコードでも発生したはずなんですよね...謎です。
アバター
Na 2020/3/4 17:37 ◆QoELVrBXBQCI
更新データを消して試してみましたが、
3号ver3.3.2でもホーム画面に戻されました。
アバター
Na 2020/3/4 20:05 ◆QoELVrBXBQCI
今更ですが例の黒画面はバージョンのせいじゃないっぽいらしいです。
(海外ではver3.6.0が最新らしい)
アバター
ugly777 2020/3/4 20:13 ◆B7lOIJDWuOqi
そうでしたか
アバター
Na 2020/3/4 21:29 ◆QoELVrBXBQCI
例の黒画面は検証した人が3DSの改造をしていたためだそうです。

いろいろ勝手に巻き込んですみませんでした。
アバター
ugly777 2020/3/4 21:56 ◆B7lOIJDWuOqi
CFWのせいでしたか
アバター
Na 2020/3/4 23:18 ◆QoELVrBXBQCI
はい。
これ以上改造の話は掘り下げません。
アバター
ugly777 2020/3/5 7:44 ◆B7lOIJDWuOqi
そうですね
アバター
しょうご 2020/3/5 19:40 ◆tpp2zBc4h8pI
改造というのも公式では認められていませんし、改造したソフトで通信(3DSではすれ違い通信なども含む、ネット通信など)した時点で違法行為になります。一応購入したソフトは個人の所有物になるので認められてはないものの、改造しただけでは違法にはならないですが、配布すれば問題ですし、その内容を掲示板等に上げるのはやはり好ましくないと思います。
プチバースの元になっているMiiverseでは削除対処になりますし、メーカー側も警戒するかもわかりません。
今のような「他の方が改造していたため問題が起きた」、であればまだ内容としてはわかりますが、「改造すれば可能」「改造を行うことで再現できる」という助長するような内容であれば良くないですね。
今はコメントを修正したみたいですが、「改造」ではなく改造を行うソフトウェアの名前を記述するのは良くないかと思います。
アバター
ugly777 2020/3/5 20:01 ◆B7lOIJDWuOqi
この話をしている時点で改造の話を掘り下げとるし
↑この文章も改造の話を掘り下げている
↑この文章も改造の話を掘り下げている
↑この文章も改造の話を掘り下げている
アバター
しょうご 2020/3/5 20:41 ◆tpp2zBc4h8pI
ファームウェアもソフトウェアの一種ですし、今回上げらている物だけでなく、その他の物も含めた意味で「ソフトウェア」としてコメントしました。不正なデータを動作させるソフトや機材、それに関連した名称を記述するのも、改造を助長させる行為になりかねないので良くないかと思います。
Wikipediaのリンクも貼られていますが、特に詳しく書かれているのでリンクを貼るのもあまり好ましくないかと思います。
「改造」といったワード自体も好ましくないですが、せめて「別の方が改造していたため問題が起きた」くらいが良いのではないでしょうか。
アバター
ツララ 2020/3/5 21:51 ◆ArUdBYOYME1V
「改造」ってワードは他の人の公開作品に手を加えて改良ってのも含まれると思うので
NGにするなら「ゲーム機本体の改造」って方がニュアンスが近いような。

物理的にコンピュータがハングする状況を考えると
1.計算量が多すぎて処理が終わらない
2.何らかの無限ループに陥っている
3.何らかのエラーが起きているが対応するエラー処理が無くて処理のどん詰まりになっている
等々の問題が発生して入力を受け付けなくなっているってことですかね。

・TEST.PRGの
PRGEDIT 3:PRGDEL -1:EXEC 3
っていうところでスロット3にENDが無くなってるので戻ってこれないのが原因っぽい?

Naさんが落とし所にしたいのは原因が特定することによるハングアップの回避方法だと思うので
メモリリークでデータ破壊が伴うようなことでも無ければ
神経過敏になって特段口をつぐむことでも無いと思うんですけど。
Naさんにお聞きしますけど、このプログラムを実行してデータ破壊とかありました?
アバター
Na 2020/3/5 22:11 ◆QoELVrBXBQCI
既に10回以上ハングさせていますがデータ破壊などの実害はいまのところありません。

もともとライブラリがあるスロット3を PRGEDIT 3:PRGDEL -1:EXEC 3 でクリアし、その後スロット2にライブラリを読み込んでいるのですが、このときにスロット3を完全にクリアできておらず、関数の呼び出しで問題が起きている...というのが現在の仮説です。

また、検証用プログラム(公開キー)のXCMD.LIBから数行削除したコードにおいて、全く同じコードを実行してもハングする場合としない場合があることを確認しました。
アバター
TASさん[TASソフト] 2020/3/6 13:00 ◆.nIzcsM.397S
機械語変換部分で何かが起きてそうな気がするなぁ…

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -