Debugger: Fix fetching source to link C++ error on GitHub
Fixes #66974.
(cherry picked from commit 4d29346a74
)
This commit is contained in:
parent
a49a90742f
commit
76f219adb6
1 changed files with 15 additions and 1 deletions
|
@ -2289,8 +2289,22 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) {
|
||||||
ti = ti->get_parent();
|
ti = ti->get_parent();
|
||||||
}
|
}
|
||||||
|
|
||||||
// We only need the first child here (C++ source stack trace).
|
// Find the child with the "C++ Source".
|
||||||
|
// It's not at a fixed position as "C++ Error" may come first.
|
||||||
TreeItem *ci = ti->get_children();
|
TreeItem *ci = ti->get_children();
|
||||||
|
const String cpp_source = "<" + TTR("C++ Source") + ">";
|
||||||
|
while (ci) {
|
||||||
|
if (ci->get_text(0) == cpp_source) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ci = ci->get_next();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ci) {
|
||||||
|
WARN_PRINT("No C++ source reference is available for this error.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Parse back the `file:line @ method()` string.
|
// Parse back the `file:line @ method()` string.
|
||||||
const Vector<String> file_line_number = ci->get_text(1).split("@")[0].strip_edges().split(":");
|
const Vector<String> file_line_number = ci->get_text(1).split("@")[0].strip_edges().split(":");
|
||||||
ERR_FAIL_COND_MSG(file_line_number.size() < 2, "Incorrect C++ source stack trace file:line format (please report).");
|
ERR_FAIL_COND_MSG(file_line_number.size() < 2, "Incorrect C++ source stack trace file:line format (please report).");
|
||||||
|
|
Loading…
Reference in a new issue