weasel
weasel copied to clipboard
算法服务崩溃错误报告dmp文件使用简易说明
从 957a8e30542af8211ee305e26145351e7e3c07b0 起,小狼毫提供WER能力,在算法服务WeaselServer.exe崩溃后会在日志目录%TEMP%\rime.weasel\下生成dmp文件
可通过语言栏右击,选择日志文件夹快速打开该文件夹
通过分析dmp文件,可以定位崩溃问题所在,WeaselServer.exe/rime.dll/etc.
分析dmp工具,可用微软出品的DebugDiag,可下载安装备用。
分析步骤:
- 安装DebugDiag(安装一次即可)
- 装备出现崩溃的版本对应的symbols文件,如果是Nightly Release,则其对应的symbols文件在release page中随附,将debug_symbols.7z文件解压到一个您方便管理的位置(通常只需要WeaselServer.pdb,放到程序目录中有时候debugdiag会有更正确的响应),得到一个output文件夹以及内部若干pdb文件。如您使用的是commit ci的artifact文件,symbols文件也有在artifacts中有附上。
- 开始菜单中打开
DebugDiag 2 Analysis快捷图标运行DebugDiag - 点击左上角设置图标(该步骤通常只要设置一次后续会自动沿用上一次设定)
- 设置symbols路径和分析options后返回,加上pdb文件路径和WeaselServer.exe和rime.dll的路径(该步骤通常只要设置一次后续会自动沿用上一次设定)
- 点击
Add Data Files添加崩溃生成的dmp文件 - 点选CrashHangAnalysis
- 点击
Start Analysis - 稍候片刻,弹出打开report mht文件(通常默认用edge或ie可正常打开)
- 查看report内容
- 拉到report最下方
Exception Information,以下例子为一个rime.dll内的崩溃引发服务崩溃 - 向上拉到
Faulting Thread可见崩溃前的堆栈调用情况(本例是处理按键事件后rime.dll内部异常)
之后? a439ac74e2bc08c694a90fdc5df06602e2a600f7 之后提供了一个简易的守护,6次按键事件无响应则拉起服务(可理解为三次按键down & up)
报bug?
提供bug版本信息,提供Faulting Thread截图信息,必要的情况下提供稳定复现的方法描述
如果没有安装DebugDiag权限怎么办? 上传dmp文件供 热心网友/dev 分析,同时也请提供准确版本信息和复现方法
可以写(复制粘贴)进 wiki 里
可以写(复制粘贴)进 wiki 里
我似乎还少贴 张设置的图
rime.weasel.zip 开机后界面卡死,原因是weasel服务进程崩溃了
rime.weasel.zip 开机后界面卡死,原因是weasel服务进程崩溃了
有阅读上方主贴的内容,并执行过分析了吗?你这样连一点点版本信息都不说的,网友再热心也没有办法不是吗
另外,近期的不少崩溃都潜在和写的不好的lua插件关联,有检查过吗?
不确定什么原因引起的崩溃,所以发上来共大家研究
触发条件:在能够输入的地方,偶发性的触发,同时屏幕会显示,日志文件在 TEMP/xxx. Info等信息
环境: Windows 10 版本
Name Value
---- -----
PSVersion 7.4.2
PSEdition Core
GitCommitId 7.4.2
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
软件版本:weasel-0.16.1
dmp分析报告:
日志文件: rime.weasel.ERROR.20240717-100047.18348.log
@fxliang 如果需要dmp文件,也可以提供
不确定什么原因引起的崩溃,所以发上来共大家研究
触发条件:在能够输入的地方,偶发性的触发,同时屏幕会显示,日志文件在 TEMP/xxx. Info等信息
环境: Windows 10 版本
Name Value ---- ----- PSVersion 7.4.2 PSEdition Core GitCommitId 7.4.2 OS Microsoft Windows 10.0.19045 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0软件版本:
weasel-0.16.1dmp分析报告:
日志文件: rime.weasel.ERROR.20240717-100047.18348.log
@fxliang 如果需要dmp文件,也可以提供
报告标的位置和你说的版本的不对应
另外这个位置序列化失败,少见。可能是后端形成的特定数据引发的。要找到出问题的时候的输入找到稳定复现方法可能才有机会
不确定什么原因引起的崩溃,所以发上来共大家研究 触发条件:在能够输入的地方,偶发性的触发,同时屏幕会显示,日志文件在 TEMP/xxx. Info等信息 环境: Windows 10 版本
Name Value ---- ----- PSVersion 7.4.2 PSEdition Core GitCommitId 7.4.2 OS Microsoft Windows 10.0.19045 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0软件版本:
weasel-0.16.1dmp分析报告:![]()
日志文件: rime.weasel.ERROR.20240717-100047.18348.log @fxliang 如果需要dmp文件,也可以提供
报告标的位置和你说的版本的不对应
另外这个位置序列化失败,少见。可能是后端形成的特定数据引发的。要找到出问题的时候的输入找到稳定复现方法可能才有机会
之前是weasal自动升级不成功,我手动安装的weasel-0.16.1(但是先卸载旧版本);昨天卸载weasel-0.16.1之后,重新安装weasel-0.16.1,我观察日志文件夹,已经不会报错,而且用户文件IO错误也消失了
@fxliang 能不能帮忙看下这个问题,使用小狼毫输入法在游戏中输入内容的时候会crash 😢 version: weasel-0.17.4
下面是调用堆栈:
KernelBase.dll!00007ff8eaa9831a() Unknown
[External Code]
weasel.dll!HR_Impl(const HRESULT result, const char * file, int line) Line 319 C++
> weasel.dll!weasel::DirectWriteResources::DirectWriteResources(weasel::UIStyle & style, unsigned int dpi) Line 48 C++
[Inline Frame] weasel.dll!std::_Construct_in_place(weasel::DirectWriteResources &) Line 142 C++
[Inline Frame] weasel.dll!std::_Ref_count_obj2<weasel::DirectWriteResources>::{ctor}(weasel::UIStyle &) Line 2014 C++
[Inline Frame] weasel.dll!std::make_shared(weasel::UIStyle & <_Args_0>, unsigned int &) Line 2726 C++
weasel.dll!WeaselPanel::_InitFontRes(bool forced) Line 183 C++
weasel.dll!WeaselPanel::WeaselPanel(weasel::UI & ui) Line 89 C++
[Inline Frame] weasel.dll!weasel::UIImpl::{ctor}(weasel::UI &) Line 11 C++
[Inline Frame] weasel.dll!weasel::UI::Create(HWND__ *) Line 94 C++
[Inline Frame] weasel.dll!CCandidateList::_MakeUIWindow() Line 350 C++
weasel.dll!CCandidateList::StartUI() Line 310 C++
weasel.dll!WeaselTSF::_StartComposition(ATL::CComPtr<ITfContext> pContext, int fCUASWorkaroundEnabled) Line 81 C++
weasel.dll!WeaselTSF::DoEditSession(unsigned long ec) Line 33 C++
[External Code]
weasel.dll!WeaselTSF::_UpdateComposition(ATL::CComPtr<ITfContext> pContext) Line 387 C++
weasel.dll!WeaselTSF::OnTestKeyDown(ITfContext * pContext, unsigned __int64 wParam, __int64 lParam, int * pfEaten) Line 97 C++
@fxliang 能不能帮忙看下这个问题,使用小狼毫输入法在游戏中输入内容的时候会crash 😢 version: weasel-0.17.4 下面是调用堆栈:
KernelBase.dll!00007ff8eaa9831a() Unknown [External Code] weasel.dll!HR_Impl(const HRESULT result, const char * file, int line) Line 319 C++ > weasel.dll!weasel::DirectWriteResources::DirectWriteResources(weasel::UIStyle & style, unsigned int dpi) Line 48 C++ [Inline Frame] weasel.dll!std::_Construct_in_place(weasel::DirectWriteResources &) Line 142 C++ [Inline Frame] weasel.dll!std::_Ref_count_obj2<weasel::DirectWriteResources>::{ctor}(weasel::UIStyle &) Line 2014 C++ [Inline Frame] weasel.dll!std::make_shared(weasel::UIStyle & <_Args_0>, unsigned int &) Line 2726 C++ weasel.dll!WeaselPanel::_InitFontRes(bool forced) Line 183 C++ weasel.dll!WeaselPanel::WeaselPanel(weasel::UI & ui) Line 89 C++ [Inline Frame] weasel.dll!weasel::UIImpl::{ctor}(weasel::UI &) Line 11 C++ [Inline Frame] weasel.dll!weasel::UI::Create(HWND__ *) Line 94 C++ [Inline Frame] weasel.dll!CCandidateList::_MakeUIWindow() Line 350 C++ weasel.dll!CCandidateList::StartUI() Line 310 C++ weasel.dll!WeaselTSF::_StartComposition(ATL::CComPtr<ITfContext> pContext, int fCUASWorkaroundEnabled) Line 81 C++ weasel.dll!WeaselTSF::DoEditSession(unsigned long ec) Line 33 C++ [External Code] weasel.dll!WeaselTSF::_UpdateComposition(ATL::CComPtr<ITfContext> pContext) Line 387 C++ weasel.dll!WeaselTSF::OnTestKeyDown(ITfContext * pContext, unsigned __int64 wParam, __int64 lParam, int * pfEaten) Line 97 C++
试了下,0.14.3 是正常的,之后的版本都会crash

