JDevlieghere updated this revision to Diff 212916. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65611/new/
https://reviews.llvm.org/D65611 Files: lldb/lit/Driver/TestTarget.test lldb/tools/driver/Driver.cpp Index: lldb/tools/driver/Driver.cpp =================================================================== --- lldb/tools/driver/Driver.cpp +++ lldb/tools/driver/Driver.cpp @@ -533,14 +533,22 @@ if (!m_option_data.m_repl) { const size_t num_args = m_option_data.m_args.size(); if (num_args > 0) { + char target_path[128]; char arch_name[64]; + + // Resolve target. + SBFileSpec target(m_option_data.m_args[0].c_str()); + target.ResolveExecutableLocation(); + target.GetPath(target_path, sizeof(target_path)); + if (lldb::SBDebugger::GetDefaultArchitecture(arch_name, - sizeof(arch_name))) + sizeof(arch_name))) { commands_stream.Printf("target create --arch=%s %s", arch_name, - EscapeString(m_option_data.m_args[0]).c_str()); - else + EscapeString(target_path).c_str()); + } else { commands_stream.Printf("target create %s", - EscapeString(m_option_data.m_args[0]).c_str()); + EscapeString(target_path).c_str()); + } if (!m_option_data.m_core_file.empty()) { commands_stream.Printf(" --core %s", Index: lldb/lit/Driver/TestTarget.test =================================================================== --- /dev/null +++ lldb/lit/Driver/TestTarget.test @@ -0,0 +1,7 @@ +# Make sure lldb resolves the target path. +# RUN: mkdir -p %t/foo +# RUN: cd %t/foo +# RUN: %clang %p/Inputs/hello.c -g -o a.out +# RUN: %lldb -b a.out | FileCheck %s + +# CHECK: target create "{{.*}}foo{{[/\\\\]+}}a.out"
Index: lldb/tools/driver/Driver.cpp =================================================================== --- lldb/tools/driver/Driver.cpp +++ lldb/tools/driver/Driver.cpp @@ -533,14 +533,22 @@ if (!m_option_data.m_repl) { const size_t num_args = m_option_data.m_args.size(); if (num_args > 0) { + char target_path[128]; char arch_name[64]; + + // Resolve target. + SBFileSpec target(m_option_data.m_args[0].c_str()); + target.ResolveExecutableLocation(); + target.GetPath(target_path, sizeof(target_path)); + if (lldb::SBDebugger::GetDefaultArchitecture(arch_name, - sizeof(arch_name))) + sizeof(arch_name))) { commands_stream.Printf("target create --arch=%s %s", arch_name, - EscapeString(m_option_data.m_args[0]).c_str()); - else + EscapeString(target_path).c_str()); + } else { commands_stream.Printf("target create %s", - EscapeString(m_option_data.m_args[0]).c_str()); + EscapeString(target_path).c_str()); + } if (!m_option_data.m_core_file.empty()) { commands_stream.Printf(" --core %s", Index: lldb/lit/Driver/TestTarget.test =================================================================== --- /dev/null +++ lldb/lit/Driver/TestTarget.test @@ -0,0 +1,7 @@ +# Make sure lldb resolves the target path. +# RUN: mkdir -p %t/foo +# RUN: cd %t/foo +# RUN: %clang %p/Inputs/hello.c -g -o a.out +# RUN: %lldb -b a.out | FileCheck %s + +# CHECK: target create "{{.*}}foo{{[/\\\\]+}}a.out"
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits