himajin100000の未解決自己レス(メモ書き)です。

https://opengrok.libreoffice.org/xref/core/vcl/source/app/svmain.cxx?r=10da3d81#200
https://opengrok.libreoffice.org/xref/core/desktop/source/app/app.cxx?r=51e92859#1634
https://opengrok.libreoffice.org/xref/core/vcl/source/app/svapp.cxx?r=9401c7c2#449

までは通過しているようで、whileのループを4回繰り返した上で、ループを何故 か抜けていないことまでは把握してますが…

何故hiddenのみで再現するのか、なぜodtやodpでは再現しないのかを含め、原因 はさっぱりわかりません。
============
調査の過程:
>Expression: nullptr == mpSchedulerData || utl::ConfigManager::IsFuzzing()

configは特に変な弄り方はしてないので、mpSchedulerDataがnullptrでない状態 になっていると思いました。

そのような代入を行っている場所を検索したら、以下の場所しか引っかからず、 クラッシュするコードかどうかを問わず通過している
https://opengrok.libreoffice.org/xref/core/vcl/source/app/scheduler.cxx?r=18d50b61#534

ということはnullptrを代入する部分に問題があるはず。ひたすらログ取って調 べたところ、
クラッシュしたときには以下の部分を通過していないようでした。
https://opengrok.libreoffice.org/xref/core/vcl/source/app/scheduler.cxx?r=18d50b61#172
で、これを呼び出しているのはここだけ。
https://opengrok.libreoffice.org/xref/core/vcl/source/app/svmain.cxx?r=10da3d81#479
そして、意味の有りそうな場所はここ。実際ログ取ると、クラッシュするコード としないコードで通過・不通過が異なる。
https://opengrok.libreoffice.org/xref/core/vcl/source/app/svmain.cxx?r=10da3d81#227
ただし、ImplSVMain自体はどちらのケースも呼ばれており、途中分岐してreturn とかがないから、このどこかで抜けられなくなっているはず。

--
Unsubscribe instructions: E-mail to discuss+unsubscr...@ja.libreoffice.org
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/ja/discuss/
Privacy Policy: https://www.documentfoundation.org/privacy

メールによる返信