windbg崩溃检测.md 3.2 KB

#unity/日常积累

注意,unity的编译选项,需要是IL2CPP 这种 C++ 的编译选项

![[Pasted image 20240718092243.png]]

安装好windows对应的sdk后,一般都会集成windbg调试工具,关键字检索,打开即可

![[Pasted image 20240718092045.png]]

首先打开对应的崩溃Dump文件

![[Pasted image 20240718091525.png]]

然后在命令行中,添加pdb符号表路径,参考

.sympath+ G:\code\unity\testCrash\exe

该指令是会添加,对应路径下,所有的pdb符号表文件

![[Pasted image 20240718091842.png]]

如果顺利加载,以下路径会显示为OK

![[Pasted image 20240718092518.png]]

然后再执行以下指令,就可以定位到,具体的崩溃位置了

 .ecxr;kv

![[Pasted image 20240718092132.png]]

对应测试脚本:

![[Pasted image 20240718092149.png]]

如果解析不出来,可以尝试重载指令

.reload

![[Pasted image 20240718092358.png]]

如果要命令行执行,windbg,可以使用,它的脚本模式; 不同参数,分别对应不同的文件和路径,举例说明:

-z 对应的是,崩溃dmp文件,所在的路径; -y 对应的是,符号表所在路径,如果有多个符号表路径,可以使用 ; 进行隔开,如果路径包含空格,则需要使用引号,引起来; -logo 对应的是,dmp解析后,输出的文件路径,如果文件已存在,会覆盖

-c 对应的是,windbg启动之后,执行的相关指令,可以是指令,也可以是文本文件,其中包含多条指令;如果只是执行,相关指令,它们之间,需要使用 ; 进行隔开;

需要先 cd 跳转到,windbg.exe所在的文件夹,再打开命令行,执行以下指令

![[Pasted image 20240718224217.png]]

这里测试的是,输出崩溃文件,到D盘的qiuqiuCrash.txt文件,如果不存在这个文件,也会自动创建;

 .\windbg.exe -z C:\Users\youro\AppData\Local\Temp\DefaultCompany\testCrash\Crashes\Crash_2024-07-18_011105947\crash.dmp -y G:\code\unity\testCrash\exe -logo D:\qiuqiuCrash.txt -c " .ecxr;kv"

可以看到,记录的log也是正常的

![[Pasted image 20240718224402.png]]

也可以新建.txt脚本文件,用来存储对应脚本

![[Pasted image 20240718225129.png]]

测试脚本,其中 qq 是运行完成后,退出windbg程序即可

.echo ==============start=============
.ecxr
kv
.echo ==============end=============
qq

命令行调用的时候,记得添加 "$< 前缀,然后跟随txt脚本,所在的路径即可,参考windbg命令行脚本

 .\windbg.exe -z C:\Users\youro\AppData\Local\Temp\DefaultCompany\testCrash\Crashes\Crash_2024-07-18_011105947\crash.dmp -y G:\code\unity\testCrash\exe -logo D:\qiuqiuCrash.txt -c "$<D:\TestWindbgScript.txt"

这里脚本存放的位置,也是D盘

![[Pasted image 20240718225405.png]]

自动运行脚本后,windbg也是自动退出,log文件也提示,重新加载了

![[Pasted image 20240718225443.png]]

报错的log信息,也还是正常的

![[Pasted image 20240718225515.png]]

参考链接:

https://cloud.tencent.com/developer/article/2408909

https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debuggercmds/windbg-command-line-preview