[程式] 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