質問編集履歴

1

追記

2019/09/06 00:27

投稿

tuyudaku
tuyudaku

スコア75

test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,35 @@
21
21
 
22
22
 
23
23
  よろしくお願いします
24
+
25
+
26
+
27
+ ##追記
28
+
29
+ 情報が少なく言葉足らずで申し訳ありません...
30
+
31
+ 分かった情報などをまとめさせた頂きます
32
+
33
+
34
+
35
+ - 該当スロットはデストラクタが走る前に、呼び出されたもの
36
+
37
+ - 該当スロットではループの処理をしている、ループ中にデストラクタが走っています
38
+
39
+ - ループ処理内では`QEventLoop`と`QTimer::singleShot`を使ったスリープを使って1秒間隔で処理するようにしてある(個人的にはコレが何か問題を起こしているのかと思っております)
40
+
41
+ - 該当スロットのループ内とデストラクタにログを仕込みましたが、デストラクタのログ後にループのログが確認できているので、デストラクタ後にも動き続けていると判断しました
42
+
43
+ - 回答に頂いたので、`this`のアドレスをログで出力させたのですが、デストラクタ後に該当スロットループ内のログでセグ落ちが発生しました、破棄された`this`へのアクセスのせいだと思われるので、私が考えている問題は起きていると思われます
44
+
45
+ - ループ内でローカル変数へのアクセスは問題が起きませんが、メンバ変数へのアクセスをするとセグ落ちが発生します
46
+
47
+
48
+
49
+ ここまで書いて、あることに気付いたのですが
50
+
51
+ そもそもセグ落ちしている関数はスロット内で呼ばれているprivateメンバ関数です...
52
+
53
+ 実質スロットの処理ではあるとは思いますが一応情報だけでも...
54
+
55
+ また何か状況が変わらないかと思い`emit`で該当スロットとコネクトしてあるシグナルを呼び出していたところを、`QTimer::singleShot`で動作させてみたのですが状況は変わりませんでした