作者yekdniw (yekdniw)
看板GameDesign
标题[程式] UE4 Editor内Blueprint中断点没有触发
时间Thu Nov 19 20:04:07 2020
网页版
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);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.16.217 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1605787449.A.A10.html
※ 编辑: yekdniw (1.169.16.217 台湾), 11/19/2020 20:04:31
1F:推 coolrobin: 推 11/19 20:34