From db7d11c7a27e59e01c7ea09149098a078df00c80 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Mon, 6 May 2013 10:21:11 +0000 Subject: [PATCH] A few small fixes to make things like image list not print "//mach_kernel" if you are debugging an executable in the top level directory. llvm-svn: 181190 --- lldb/source/Commands/CommandObjectTarget.cpp | 9 +++------ lldb/source/Host/common/FileSpec.cpp | 6 ++++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp index 899db4c9ce17..522a4828624c 100644 --- a/lldb/source/Commands/CommandObjectTarget.cpp +++ b/lldb/source/Commands/CommandObjectTarget.cpp @@ -1385,12 +1385,9 @@ DumpFullpath (Stream &strm, const FileSpec *file_spec_ptr, uint32_t width) { if (width > 0) { - char fullpath[PATH_MAX]; - if (file_spec_ptr->GetPath(fullpath, sizeof(fullpath))) - { - strm.Printf("%-*s", width, fullpath); - return; - } + std::string fullpath = file_spec_ptr->GetPath(); + strm.Printf("%-*s", width, fullpath.c_str()); + return; } else { diff --git a/lldb/source/Host/common/FileSpec.cpp b/lldb/source/Host/common/FileSpec.cpp index 82f5b344b9aa..3e56e5c204ed 100644 --- a/lldb/source/Host/common/FileSpec.cpp +++ b/lldb/source/Host/common/FileSpec.cpp @@ -523,10 +523,11 @@ FileSpec::Equal (const FileSpec& a, const FileSpec& b, bool full) void FileSpec::Dump(Stream *s) const { + static ConstString g_slash_only ("/"); if (s) { m_directory.Dump(s); - if (m_directory) + if (m_directory && m_directory != g_slash_only) s->PutChar('/'); m_filename.Dump(s); } @@ -705,13 +706,14 @@ FileSpec::GetPath(char *path, size_t path_max_len) const std::string FileSpec::GetPath (void) const { + static ConstString g_slash_only ("/"); std::string path; const char *dirname = m_directory.GetCString(); const char *filename = m_filename.GetCString(); if (dirname) { path.append (dirname); - if (filename) + if (filename && m_directory != g_slash_only) path.append ("/"); } if (filename)