labath created this revision.
labath added reviewers: clayborg, ovyalov.
labath added subscribers: lldb-commits, dean.
in case we are logging to stdout, any log lines from the forked child can be
misconstrued to be
inferior output. To avoid this, we disable all logging immediately after
forking.
I also fix the implementatoion of DisableAllLogChannels, which was a no-op
before this commit.
http://reviews.llvm.org/D12083
Files:
source/Core/Log.cpp
source/Plugins/Process/Linux/NativeProcessLinux.cpp
Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp
===================================================================
--- source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -560,8 +560,11 @@
// Child process.
if (pid == 0)
{
+ // First, make sure we disable all logging. If we are logging to
stdout, our logs can be
+ // mistaken for interior output.
+ Log::DisableAllLogChannels(nullptr);
// FIXME consider opening a pipe between parent/child and have this
forked child
- // send log info to parent re: launch status, in place of the log
lines removed here.
+ // send log info to parent re: launch status.
// Start tracing this child that is about to exec.
error = PtraceWrapper(PTRACE_TRACEME, 0);
Index: source/Core/Log.cpp
===================================================================
--- source/Core/Log.cpp
+++ source/Core/Log.cpp
@@ -449,7 +449,7 @@
{
CallbackMap &callback_map = GetCallbackMap ();
CallbackMapIter pos, end = callback_map.end();
- const char *categories[1] = {NULL};
+ const char *categories[] = {"all", nullptr};
for (pos = callback_map.begin(); pos != end; ++pos)
pos->second.disable (categories, feedback_strm);
Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp
===================================================================
--- source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -560,8 +560,11 @@
// Child process.
if (pid == 0)
{
+ // First, make sure we disable all logging. If we are logging to stdout, our logs can be
+ // mistaken for interior output.
+ Log::DisableAllLogChannels(nullptr);
// FIXME consider opening a pipe between parent/child and have this forked child
- // send log info to parent re: launch status, in place of the log lines removed here.
+ // send log info to parent re: launch status.
// Start tracing this child that is about to exec.
error = PtraceWrapper(PTRACE_TRACEME, 0);
Index: source/Core/Log.cpp
===================================================================
--- source/Core/Log.cpp
+++ source/Core/Log.cpp
@@ -449,7 +449,7 @@
{
CallbackMap &callback_map = GetCallbackMap ();
CallbackMapIter pos, end = callback_map.end();
- const char *categories[1] = {NULL};
+ const char *categories[] = {"all", nullptr};
for (pos = callback_map.begin(); pos != end; ++pos)
pos->second.disable (categories, feedback_strm);
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits