Merge pull request #117067 from AThousandShips/fix_trace_linux
[Linux] Fix `addr2line` call
This commit is contained in:
commit
47612473f9
1 changed files with 3 additions and 1 deletions
|
|
@ -104,13 +104,13 @@ static void handle_crash(int sig) {
|
||||||
#endif //__GLIBC__
|
#endif //__GLIBC__
|
||||||
if (strings) {
|
if (strings) {
|
||||||
int ret;
|
int ret;
|
||||||
String output;
|
|
||||||
|
|
||||||
List<String> args;
|
List<String> args;
|
||||||
args.push_back("--version");
|
args.push_back("--version");
|
||||||
String exe_name;
|
String exe_name;
|
||||||
|
|
||||||
if (exe_name.is_empty()) {
|
if (exe_name.is_empty()) {
|
||||||
|
String output;
|
||||||
// Faster implementation from gimli-rs/addr2line.
|
// Faster implementation from gimli-rs/addr2line.
|
||||||
Error err = OS::get_singleton()->execute(OS::get_singleton()->get_environment("HOME").path_join(String("/.cargo/bin/addr2line")), args, &output, &ret);
|
Error err = OS::get_singleton()->execute(OS::get_singleton()->get_environment("HOME").path_join(String("/.cargo/bin/addr2line")), args, &output, &ret);
|
||||||
if (err == OK && ret == 0) {
|
if (err == OK && ret == 0) {
|
||||||
|
|
@ -118,6 +118,7 @@ static void handle_crash(int sig) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (exe_name.is_empty()) {
|
if (exe_name.is_empty()) {
|
||||||
|
String output;
|
||||||
Error err = OS::get_singleton()->execute(String("llvm-addr2line"), args, &output, &ret);
|
Error err = OS::get_singleton()->execute(String("llvm-addr2line"), args, &output, &ret);
|
||||||
if (err == OK && ret == 0) {
|
if (err == OK && ret == 0) {
|
||||||
exe_name = String("llvm-addr2line");
|
exe_name = String("llvm-addr2line");
|
||||||
|
|
@ -137,6 +138,7 @@ static void handle_crash(int sig) {
|
||||||
args.push_back(_execpath);
|
args.push_back(_execpath);
|
||||||
|
|
||||||
// Try to get the file/line number using addr2line
|
// Try to get the file/line number using addr2line
|
||||||
|
String output;
|
||||||
Error err = OS::get_singleton()->execute(exe_name, args, &output, &ret);
|
Error err = OS::get_singleton()->execute(exe_name, args, &output, &ret);
|
||||||
Vector<String> addr2line_results;
|
Vector<String> addr2line_results;
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue