[Lldb-commits] [lldb] r112614 - in /lldb/trunk: include/lldb/lldb-private-log.h source/Host/macosx/Host.mm source/lldb-log.cpp
Jim Ingham
jingham at apple.com
Tue Aug 31 11:05:13 PDT 2010
Author: jingham
Date: Tue Aug 31 13:05:13 2010
New Revision: 112614
URL: http://llvm.org/viewvc/llvm-project?rev=112614&view=rev
Log:
Add a "lldb host" logging channel, and put logging in the Host::OpenInExternalEditor code.
Modified:
lldb/trunk/include/lldb/lldb-private-log.h
lldb/trunk/source/Host/macosx/Host.mm
lldb/trunk/source/lldb-log.cpp
Modified: lldb/trunk/include/lldb/lldb-private-log.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private-log.h?rev=112614&r1=112613&r2=112614&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-private-log.h (original)
+++ lldb/trunk/include/lldb/lldb-private-log.h Tue Aug 31 13:05:13 2010
@@ -33,6 +33,7 @@
#define LIBLLDB_LOG_OBJECT (1u << 11)
#define LIBLLDB_LOG_COMMUNICATION (1u << 12)
#define LIBLLDB_LOG_CONNECTION (1u << 13)
+#define LIBLLDB_LOG_HOST (1u << 14)
#define LIBLLDB_LOG_ALL (UINT32_MAX)
#define LIBLLDB_LOG_DEFAULT (LIBLLDB_LOG_PROCESS |\
LIBLLDB_LOG_THREAD |\
Modified: lldb/trunk/source/Host/macosx/Host.mm
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Host.mm?rev=112614&r1=112613&r2=112614&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Host.mm (original)
+++ lldb/trunk/source/Host/macosx/Host.mm Tue Aug 31 13:05:13 2010
@@ -795,6 +795,7 @@
uint32_t reserved2; // must be zero
} BabelAESelInfo;
+ Log *log = lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_HOST);
char file_path[PATH_MAX];
file_spec.GetPath(file_path, PATH_MAX);
CFCString file_cfstr (file_path, kCFStringEncodingUTF8);
@@ -802,6 +803,9 @@
file_cfstr.get(),
kCFURLPOSIXPathStyle,
false));
+
+ if (log)
+ log->Printf("Sending source file: \"%s\" and line: %d to external editor.\n", file_path, line_no);
OSStatus error;
BabelAESelInfo file_and_line_info =
@@ -823,6 +827,8 @@
if (error != noErr)
{
+ if (log)
+ log->Printf("Error creating AEDesc: %d.\n", error);
return false;
}
@@ -841,6 +847,9 @@
if (external_editor != NULL)
{
bool calculate_fsref = true;
+ if (log)
+ log->Printf("Looking for external editor \"%s\".\n", external_editor);
+
if (app_name.empty() || strcmp (app_name.c_str(), external_editor) != 0)
{
calculate_fsref = true;
@@ -857,7 +866,11 @@
if (error == noErr)
app_name.assign (external_editor);
else
+ {
+ if (log)
+ log->Printf("Could not find External Editor application, error: %d.\n", error);
return false;
+ }
}
@@ -879,6 +892,9 @@
if (error != noErr)
{
+ if (log)
+ log->Printf("LSOpenURLsWithRole failed, error: %d.\n", error);
+
return false;
}
@@ -888,7 +904,15 @@
which_process.processName = ap_name;
error = ::GetProcessInformation (&psn, &which_process);
- bool using_xcode = strncmp((char *) ap_name+1, "Xcode", 5) == 0;
+ bool using_xcode;
+ if (error != noErr)
+ {
+ if (log)
+ log->Printf("GetProcessInformation failed, error: %d.\n", error);
+ using_xcode = false;
+ }
+ else
+ using_xcode = strncmp((char *) ap_name+1, "Xcode", (int) ap_name[0]) == 0;
// Xcode doesn't obey the line number in the Open Apple Event. So I have to send
// it an AppleScript to focus on the right line.
@@ -916,6 +940,8 @@
if (osa_component == NULL)
{
+ if (log)
+ log->Printf("Could not get default AppleScript component.\n");
return false;
}
@@ -937,7 +963,11 @@
::free (as_str);
if (error != noErr)
+ {
+ if (log)
+ log->Printf("Failed to create AEDesc for Xcode AppleEvent: %d.\n", error);
return false;
+ }
OSAID ret_OSAID;
error = ::OSACompileExecute (osa_component,
@@ -951,7 +981,11 @@
::AEDisposeDesc (&as_desc);
if (error != noErr)
+ {
+ if (log)
+ log->Printf("Sending AppleEvent to Xcode failed, error: %d.\n", error);
return false;
+ }
}
return true;
Modified: lldb/trunk/source/lldb-log.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/lldb-log.cpp?rev=112614&r1=112613&r2=112614&view=diff
==============================================================================
--- lldb/trunk/source/lldb-log.cpp (original)
+++ lldb/trunk/source/lldb-log.cpp Tue Aug 31 13:05:13 2010
@@ -151,6 +151,7 @@
else if (strcasestr(arg, "temp") == arg) flag_bits |= LIBLLDB_LOG_TEMPORARY;
else if (strcasestr(arg, "comm") == arg) flag_bits |= LIBLLDB_LOG_COMMUNICATION;
else if (strcasestr(arg, "conn") == arg) flag_bits |= LIBLLDB_LOG_CONNECTION;
+ else if (strcasestr(arg, "host") == arg) flag_bits |= LIBLLDB_LOG_HOST;
else
{
feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
More information about the lldb-commits
mailing list