[程式] UE4 Editor内Blueprint中断点没有触发

楼主: yekdniw (yekdniw)   2020-11-19 20:04:07
网页版
https://yekdniwue.blogspot.com/2020/11/BPBreakpoint.html
最近在做功能的时候遇到了有趣的问题。
其实以前就偶尔有遇到但是没有认真找原因,因为发生的机会其实很低。
这次很幸运的找到问题的原因,所以分享一下
问题发生的现象
在解决问题之前,先描述问题的定义:
在BP下中断点,无论如何都不会停下来。
但是在中断点前或后面的节点下PrintString确定会印,功能也都正常。
就只是断点不会停
如果这个BP是从C++呼叫的话,C++的断点是会停的。
问题的原因
追查发现ScriptCore.cpp
在执行BP的breakpoint之前,会检查现在是不是在GameThread。
如果有在Game Thread才会触发中断点
刚好我这次的功能是从muti-threading的animation事件过来的。
CallStack直接看到有Update_AnyThread的字眼
所以下次如果再遇到类似的现象
可能要想一下是不是因为multi threading造成的~
相关程式码
ScriptCore.cpp
FBlueprintCoreDelegates::ThrowScriptException里面的
if (IsInGameThread())
{
OnScriptException.Broadcast(ActiveObject, StackFrame, Info);
}
作者: coolrobin (泳圈)   2020-11-19 20:34:00

Links booklink

Contact Us: admin [ a t ] ucptt.com