X



バグの原因がわからない
■ このスレッドは過去ログ倉庫に格納されています
0001おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:32:45.747
しかもたまにしか起きない
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:33:15.888ID:AZX6hkl5d
ログ残そう
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:33:50.539ID:T8MMb6HX0
並列処理とかしてる?
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:33:58.992ID:Sqpnw6pKa
偽物だ
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:34:35.229ID:BYTegG5Xa
業者に相談する

異常はありませんでした

また壊れる

ループ
0008おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:36:21.140
タイマーで10ms毎に処理
各処理の最初にタイマーを止めて最後にタイマーを再開にしてる
なのにnullチェックの後ろでたまにnull参照エラーになる
0009おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:37:56.541
10じゃなくて100だった
0011おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:40:32.377
タイマー停止完了までに次の呼び出しがされたらワンチャンあるか
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:40:38.311ID:AZX6hkl5d
>>8
マルチスレッド?
0013おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:42:06.107
C#のSystem.Times.Timerっていうのを使ってる
nullチェック対象の変数はタイマー処理内以外では使ってない
0014おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:43:02.274
参照は他でもしてる
0015おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:43:36.408
タイマー処理の最後にその変数にはnullを入れてる
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:43:56.082ID:eysyRCXL0
バグの原因なんて分からなくていい
解決策だけ分かれば
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:44:59.772ID:AZX6hkl5d
ログ出せばデバッグできそうだけど対処としてはMutexかけて排他かな
0018おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:47:27.060
タイマー停止

処理

ヌルチェック

処理

処理←たまにヌル参照エラー

処理

ヌル代入

タイマー再開
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:50:03.188ID:SzTGJJnF0
無理に直そうとするなよ
どんな処理してるのか分からないけど
例外処理入れてnullだったらもう一周すればいいだろ
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:50:06.041ID:AZX6hkl5d
ヌルチェックの前でmutex取ってnull後にmutex解放すれば処理中に別のスレッドがnull入れるの回避できるよ
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:50:06.024ID:T8MMb6HX0
シングルスレッド?
それともマルチスレッド?
>>17も言ってるようにとりあえずMutexでロックするのが手っ取り早いのでは
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:52:18.027ID:K2PtGWbqr
イベント処理?
タイマーなんて使うなよ
設計が悪いだろそれ
0023おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:55:21.717
多少の処理(hoge書き換えなし)

タイマー停止

処理(hoge書き換えなし)

処理(hoge書き換え、ヌルの可能性もあり)

hogeヌルチェック

処理(hoge書き換えなし)←たまにヌル参照エラー

hogeにヌル代入

タイマー再開
0024おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:57:24.443
タイマー停止までに次のタイマー処理呼び出しが来たらワンチャンある
0025以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 15:58:07.466ID:i+11jItk0
イベント駆動
処理の中で別の処理を呼んでる
タイマー開放してる
0026おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 15:59:19.944
hogeを書き換えてるのは全体で↓の二つの箇所だけ
やっぱりたまにタイマー停止が間に合わないのかな


多少の処理(hoge書き換えなし)

タイマー停止

処理(hoge書き換えなし)

処理(hoge書き換え、ヌルの可能性もあり)

hogeヌルチェック

処理(hoge書き換えなし)←たまにヌル参照エラー

hogeにヌル代入

タイマー再開
0027おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 16:01:58.999
並行状態になってるときがないかログを取って確かめるか
0028おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 16:02:31.863
まあ対処だけなら簡単だけど原因を突き詰めたい
仕事でもなんてないし
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:02:51.043ID:SzTGJJnF0
>>8
C#のタイマで10msが原因だわ
10msの精度なんかでないから同時にイベント発生する
0030おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 16:03:19.999
10じゃなくて100のミス
まあ100も短いからワンチャンあるかもしれんよな
取り敢えずログを取るか
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:04:35.572ID:T8MMb6HX0
調べたけどC#のタイマーって並列で動作するからブロック内の処理が100ms以上かかれば普通に2重で処理行われるっぽいね
0033以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:05:45.039ID:T8MMb6HX0
ごめん全然違った
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:06:36.394ID:T8MMb6HX0
ただ終了したかしないかに関わらずループ内の処理は行われるのならそういうことなんだろうね
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:07:38.424ID:i+11jItk0
タイマー使い回さないというのが妥当な対策の予感
0036おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/12/10(土) 16:09:22.651
まあそもそも設計に問題はあるかもしれんな
でもその前に現状の原因だけ見つけておきたい
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/12/10(土) 16:54:08.597ID:sAUWuTxS0
荒らしの手伝い募集か
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況