質問編集履歴
2
質問を追加した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,4 +40,8 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
+
ちなみにQtではdelete後にnullを設定することでガベージコレクションの対象になりやすくなるということがありますでしょうか?
|
44
|
+
|
45
|
+
|
46
|
+
|
43
47
|
アプリケーションのフリーズを調査するためのツールや手法等について御教授願います。
|
1
情報を追記した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,9 +6,37 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
具体的な事象としてはアプリケーションが無応答になるという状況です。
|
10
|
+
|
11
|
+
1秒定期で時刻を表示していたとして、その表示更新が行われなくなるイメージです。
|
12
|
+
|
13
|
+
システム構成はアプリケーション(プロセス)とスケジューラ(プロセス)が存在し、別々のコアで動作しています。
|
14
|
+
|
15
|
+
※スケジューラの主な機能は定期的にメッセージを配信するというものです。
|
16
|
+
|
17
|
+
※時刻の表示はQtの機能を用いています。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
フリーズ発生時、アプリケーションとスケジューラの両方が停止していました。
|
22
|
+
|
23
|
+
試しにアプリケーションで無限ループさせてもスケジューラはフリーズせず、
|
24
|
+
|
25
|
+
逆にスケジューラで無限ループさせてもアプリケーションはフリーズしないことは確認済みです。
|
26
|
+
|
27
|
+
アプリケーションとスケジューラの間でデッドロックが発生しているような状況です。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
但し、完全にフリーズした状態に至る前、アプリケーションの時刻表示更新がしばらく(30~40秒)止まった後、再開されるという動作を確認しています。
|
32
|
+
|
33
|
+
この「しばらく止まった後、再開する」という点から考えるとデッドロックでは無いのではと想像しています。
|
34
|
+
|
35
|
+
|
36
|
+
|
9
37
|
Linux上でのデバッグについて情報が乏しいため、情報を集めいています。
|
10
38
|
|
11
|
-
アプリケーションをビルドし直すと状況が変化してしまうため、現状のアプリケーションのままで検証が行えると良いと思っています。
|
39
|
+
アプリケーションをビルドし直すと状況が変化してしまうため、できれば現状のアプリケーションのままで検証が行えると良いと思っています。
|
12
40
|
|
13
41
|
|
14
42
|
|