外部ソフトからの割込によりコンテキストメニューでエラーが起きる

Issue #179 resolved
jinto_ created an issue

(自分はスクショを撮るのにWinShotというフリーソフトを使っています。
そして、環境設定でJPEGで保存(矩形範囲指定)のホット・キーにPrintScreenを当てています。)


1.イベントビューでコンテキストメニューを出す。
2.PrintScreenを押して、矩形範囲指定画面を出す。
3.マウスで範囲を指定していくと、コンテキストメニューの所でカーソルがマウスポインタに変わる。
4.そこでイベントツリーをパッケージ化するやコメントを記述などを選ぶとエラーになります。

 2017-08-10 05:40:28 [Build: 2017-08-09 23:07:55 Debug (32-bit)] cwx\utils.d:136 Stack Trace --------
cwx\editor\gui\dwt\mainwindow.d-mixin-4424, 4424
cwx\editor\gui\dwt\mainwindow.d-mixin-4427, 4427
cwx\editor\gui\dwt\dmenu.d-mixin-382, 382
cwx\editor\gui\dwt\eventtreeview.d-mixin-1948, 1948
cwx\editor\gui\dwt\eventtreeview.d-mixin-651, 651
cwx\editor\gui\dwt\eventtreeview.d-mixin-440, 440
cwx\editor\gui\dwt\eventtreeview.d-mixin-360, 360
cwx\editor\gui\dwt\eventtreeview.d-mixin-368, 368
cwx\editor\gui\dwt\eventtreeview.d-mixin-337, 337
cwx\editor\gui\dwt\eventtreeview.d-mixin-339, 339
--------
2017-08-10 05:40:28 [Build: 2017-08-09 23:07:55 Debug (32-bit)] cwx\editor\gui\dwt\mainwindow.d:4536 [Access Violation] , 0: 0x00FF06AD
0x00FF0A30
0x00FF1BC8
0x00FF4EBA
0x01007F02
0x0049783B
0x0145FBD4
0x014B4D84
0x013CD811
0x013FAEFD
0x013F998E
0x008461D7
0x01087985
0x015585BB
0x0155857F
0x01558480
0x01087A57
0x772E8744 in BaseThreadInitThunk
0x7776582D in RtlGetAppContainerNamedObjectPath
0x777657FD in RtlGetAppContainerNamedObjectPath

Comments (18)

  1. k4nagatsuki repo owner

    pull request #182

    ご報告ありがとうございます。どうも本来cwxeditorが持っているべきフォーカスが奪われてしまっているようですね。問題の回避処理を入れておきます。

  2. jinto_ reporter

    確認しましたが、どうも直ってないようです。

    2017-08-11 01:26:19 [Build: 2017-08-11 00:28:46 Debug (32-bit)] cwx\utils.d:136 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4424, 4424
    cwx\editor\gui\dwt\mainwindow.d-mixin-4427, 4427
    cwx\editor\gui\dwt\dmenu.d-mixin-382, 382
    cwx\editor\gui\dwt\eventtreeview.d-mixin-1916, 1916
    cwx\editor\gui\dwt\eventtreeview.d-mixin-441, 441
    cwx\editor\gui\dwt\eventtreeview.d-mixin-361, 361
    cwx\editor\gui\dwt\eventtreeview.d-mixin-369, 369
    cwx\editor\gui\dwt\eventtreeview.d-mixin-227, 227
    cwx\editor\gui\dwt\eventeditor.d-mixin-1697, 1697
    --------
    2017-08-11 01:26:19 [Build: 2017-08-11 00:28:46 Debug (32-bit)] cwx\editor\gui\dwt\mainwindow.d:4536 [Access Violation] , 0: 0x0076E88C
    0x00FEE98B
    0x00FF0D1D
    0x00FF1EC0
    0x010073A2
    0x0049783B
    0x0145FEDC
    0x014B508C
    0x013CDB19
    0x013FB975
    0x013FA406
    0x008461D7
    0x01087C8D
    0x015588C3
    0x01558887
    0x01558788
    0x01087D5F
    0x772E8744 in BaseThreadInitThunk
    0x7776582D in RtlGetAppContainerNamedObjectPath
    0x777657FD in RtlGetAppContainerNamedObjectPath
    
  3. jinto_ reporter

    イベントビューの右側の方は直ったようです。
    ただ左側の方のコンテキストメニューでエラーになります。

    2017-08-11 06:41:25 [Build: 2017-08-11 06:29:30 Debug (32-bit)] cwx\utils.d:136 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4424, 4424
    cwx\editor\gui\dwt\mainwindow.d-mixin-4427, 4427
    cwx\editor\gui\dwt\dmenu.d-mixin-382, 382
    cwx\editor\gui\dwt\dmenu.d-mixin-140, 140
    --------
    2017-08-11 06:41:25 [Build: 2017-08-11 06:29:30 Debug (32-bit)] cwx\editor\gui\dwt\mainwindow.d:4536 [Access Violation] , 0: 0x0048C7E4
    0x0049733E
    0x0145FEE4
    0x014B5094
    0x013CDB21
    0x013FB20D
    0x013F9C9E
    0x008461D7
    0x01087C95
    0x015588CB
    0x0155888F
    0x01558790
    0x01087D67
    0x772E8744 in BaseThreadInitThunk
    0x7776582D in RtlGetAppContainerNamedObjectPath
    0x777657FD in RtlGetAppContainerNamedObjectPath
    
  4. jinto_ reporter

    右側でも切り取りや複製ではエラーになりました。
    テーブルビューでも切り取りでエラーになったし、後で整理した方がよさそうです。

  5. jinto_ reporter

    切り取り・コピー・貼り付け・削除・複製・このイベントをパッケージ化するでエラーになることは確認しました。

  6. k4nagatsuki repo owner

    pull request #185

    該当しそうな箇所全てに手を入れました。

    あとは手探りで直していくしかないので、異なるエラーログが出た場合はそれぞれ貼り付けていただけると助かります。

  7. jinto_ reporter

    イベントビューの左側でアンドゥの操作をするとエラーになるようです。

    2017-08-11 16:56:22 [Build: 2017-08-11 08:48:18 Debug (32-bit)] cwx\utils.d:136 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4425, 4425
    cwx\editor\gui\dwt\mainwindow.d-mixin-4428, 4428
    cwx\editor\gui\dwt\dmenu.d-mixin-402, 402
    cwx\editor\gui\dwt\eventview.d-mixin-2906, 2906
    cwx\editor\gui\dwt\undo.d-mixin-114, 114
    cwx\editor\gui\dwt\eventview.d-mixin-454, 454
    cwx\editor\gui\dwt\eventview.d-mixin-221, 221
    cwx\editor\gui\dwt\eventview.d-mixin-226, 226
    --------
    2017-08-11 16:56:22 [Build: 2017-08-11 08:48:18 Debug (32-bit)] cwx\editor\gui\dwt\mainwindow.d:4537 [Access Violation] , 0: 0x008A3DA7
    0x008A6BCC
    0x01375EF6
    0x008CB3F7
    0x00497C77
    0x01460428
    0x014B55D8
    0x013CE065
    0x013FB751
    0x013FA1E2
    0x00846643
    0x010881D9
    0x01558E0F
    0x01558DD3
    0x01558CD4
    0x010882AB
    0x772E8744 in BaseThreadInitThunk
    0x7776582D in RtlGetAppContainerNamedObjectPath
    0x777657FD in RtlGetAppContainerNamedObjectPath
    

    次いででですがeditor_history.txtの
    * セリフコンテント編集ダイアログでアンドゥ・リドゥを行ったタイミングでエラーニなる場合がある。
    エラーニのニがカタカナです。

  8. jinto_ reporter

    もう一つこのエラーログは何を語っているか分かるでしょうか。
    イベントビューで今回の問題のチェックをするためこのツリーをパッケージ化するやツリーを閉じるなど色々クリック・操作をした後で、アンドゥを連続してやったら出てきました。
    上のログによく似ているのですが、微妙に違う。

    2017-08-11 16:47:55 [Build: 2017-08-11 08:48:18 Debug (32-bit)] cwx\utils.d:134 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4425, 4425
    cwx\editor\gui\dwt\mainwindow.d-mixin-4428, 4428
    cwx\editor\gui\dwt\dmenu.d-mixin-402, 402
    cwx\editor\gui\dwt\eventview.d-mixin-2906, 2906
    cwx\editor\gui\dwt\undo.d-mixin-114, 114
    cwx\editor\gui\dwt\eventtreeview.d-mixin-657, 657
    cwx\editor\gui\dwt\eventtreeview.d-mixin-450, 450
    cwx\editor\gui\dwt\eventtreeview.d-mixin-460, 460
    cwx\event.d-mixin-3158, 3158
    cwx\event.d-mixin-1452, 1452
    2017-08-11 16:47:55 [Build: 2017-08-11 08:48:18 Debug (32-bit)] cwx\editor\gui\dwt\mainwindow.d:4536 [Range violation] cwx\event.d, 1455: 0x0153F970
    0x00A32B89
    0x00FF2A2C
    0x00FF36E4
    0x00FF5873
    0x01375EF6
    0x008CB3F7
    0x00497C77
    0x01460428
    0x014B55D8
    0x013CE065
    0x013FB751
    0x013FA1E2
    0x00846643
    0x010881D9
    0x01558E0F
    0x01558DD3
    0x01558CD4
    0x010882AB
    0x772E8744 in BaseThreadInitThunk
    0x7776582D in RtlGetAppContainerNamedObjectPath
    0x777657FD in RtlGetAppContainerNamedObjectPath
    
  9. k4nagatsuki repo owner

    pull request #186

    チェックを追加しました。

    あとの方のエラーログは、たぶん別問題です。アンドゥ処理の中で対象となるコンテントの親コンテントを取得しようとして失敗しています。アンドゥ・リドゥ前の状態が正しく記録できていないという事です。

    行った操作の中に原因があるはずです。今のところ見つけられていません。

  10. jinto_ reporter

    イベント発火のキーコードの絞り込み検索でエラーになりました。

    2017-08-12 05:09:36 [Build: 2017-08-11 23:33:24 Debug (64-bit)] cwx\utils.d:136 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4439, 4439
    cwx\editor\gui\dwt\mainwindow.d-mixin-4442, 4442
    cwx\editor\gui\dwt\dmenu.d-mixin-402, 402
    cwx\editor\gui\dwt\chooser.d-mixin-331, 331
    cwx\editor\gui\dwt\incsearch.d-mixin-310, 310
    cwx\editor\gui\dwt\incsearch.d-mixin-148, 148
    --------
    2017-08-12 05:09:36 [Build: 2017-08-11 23:33:24 Debug (64-bit)] cwx\editor\gui\dwt\mainwindow.d:4551 [Widget is disposed] org\eclipse\swt\SWTException.d, 99: 0x00007FF65F9F7E00
    0x00007FF65F9F7C04
    0x00007FF65F9F7BB5
    0x00007FF65F93D4C9
    0x00007FF65F93CF42
    0x00007FF65F928B49
    0x00007FF65F64CBF1
    0x00007FF65F64FC2B
    0x00007FF65F7DBF5C
    0x00007FF65E0AFE2B
    0x00007FF65FABF4B2
    0x00007FF65FB5B197
    0x00007FF65F93F6A9
    0x00007FF65F9F30BE
    0x00007FF65F9F0A3D
    0x00007FF65E6BE2AC
    0x00007FF65F43135B
    0x00007FF65FCC0932
    0x00007FF65FCC07EF
    0x00007FF65FCC08AC
    0x00007FF65FCC07EF
    0x00007FF65FCC05EF
    0x00007FF65F431934
    0x00007FF65FD86CE5
    0x00007FFC1B3F2774 in BaseThreadInitThunk
    0x00007FFC1BCA0D51 in RtlUserThreadStart
    
  11. k4nagatsuki repo owner

    これは明らかにフォーカスとは違う原因でエラーになっているのですが、どうもよく分からないですね。コンボボックスが消滅してからコンボボックスのメニューを選択しなければこんな事は起こらないはずです。

    一応回避コードを入れてみます。pull request #192

  12. jinto_ reporter

    ちょっとコツがいるのですが(一回選択→大丈夫→そのままの状態で絞り込み検索を選ぶ→すべてキャンセル→改めてwinshotを起動して選択)、確定でエラーは再現します。
    どうしようもないならこれは放置にしますかね。

    2017-08-12 10:56:41 [Build: 2017-08-12 10:35:03 Debug (64-bit)] cwx\utils.d:136 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4438, 4438
    cwx\editor\gui\dwt\mainwindow.d-mixin-4441, 4441
    cwx\editor\gui\dwt\dmenu.d-mixin-402, 402
    cwx\editor\gui\dwt\chooser.d-mixin-331, 331
    cwx\editor\gui\dwt\incsearch.d-mixin-312, 312
    --------
    2017-08-12 10:56:41 [Build: 2017-08-12 10:35:03 Debug (64-bit)] cwx\editor\gui\dwt\mainwindow.d:4550 [Widget is disposed] org\eclipse\swt\SWTException.d, 99: 0x00007FF6DFD67E80
    0x00007FF6DFD67C84
    0x00007FF6DFD67C35
    0x00007FF6DFCBB7E9
    0x00007FF6DFCBB262
    0x00007FF6DFD809E9
    0x00007FF6DF9BFC9D
    0x00007FF6DFB4BFDC
    0x00007FF6DE41FE2B
    0x00007FF6DFE2F532
    0x00007FF6DFED72E7
    0x00007FF6DFCBD9C9
    0x00007FF6DFD6313E
    0x00007FF6DFD60ABD
    0x00007FF6DEA2E27C
    0x00007FF6DF7A132B
    0x00007FF6E0030A92
    0x00007FF6E003094F
    0x00007FF6E0030A0C
    0x00007FF6E003094F
    0x00007FF6E003074F
    0x00007FF6DF7A1904
    0x00007FF6E00F6D65
    0x00007FFC1B3F2774 in BaseThreadInitThunk
    0x00007FFC1BCA0D51 in RtlUserThreadStart
    
  13. k4nagatsuki repo owner

    pull request #193

    どこでエラーが起きているかがはっきりしているので回避コードを入れておきます。

    しかしWinShotはどういう割り込み方をしているのでしょう? 何をどうやったらこんなエラーを起こすような事ができるのか見当がつきません。

  14. k4nagatsuki repo owner

    詳細に確認していただいて助かりました。ありがとうございます。

  15. Log in to comment