Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3279)

Unified Diff: base/threading/thread.cc

Issue 23606030: Copy the thread name to the stack for debugging purposes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/threading/thread.cc
diff --git a/base/threading/thread.cc b/base/threading/thread.cc
index aca4ddbaa02a11c37ef02b39b5e4c3da829f404e..f0337750356915623c2a65b77d1437c51bb4eab2 100644
--- a/base/threading/thread.cc
+++ b/base/threading/thread.cc
@@ -5,6 +5,7 @@
#include "base/threading/thread.h"
#include "base/bind.h"
+#include "base/debug/alias.h"
#include "base/lazy_instance.h"
#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
#include "base/threading/thread_id_name_manager.h"
@@ -172,6 +173,19 @@ bool Thread::GetThreadWasQuitProperly() {
void Thread::ThreadMain() {
{
+#if defined(OS_MACOSX)
+ // Store the thread name on the stack to debug <http://crbug.com/274705>.
+ // End with a byte sequence of <EOT><BEL><NUL> to make it easier to grep in
+ // the minidump stack dump.
+ const size_t kThreadNameSize = 50;
+ char thread_name[kThreadNameSize];
+ strncpy(thread_name, name_.c_str(), kThreadNameSize);
+ thread_name[kThreadNameSize - 1] = '\0';
+ thread_name[kThreadNameSize - 2] = '\7';
+ thread_name[kThreadNameSize - 3] = '\3';
+ base::debug::Alias(thread_name);
+#endif
+
// The message loop for this thread.
// Allocated on the heap to centralize any leak reports at this line.
scoped_ptr<MessageLoop> message_loop(
@@ -217,6 +231,10 @@ void Thread::ThreadMain() {
// We can't receive messages anymore.
message_loop_ = NULL;
+
+#if defined(OS_MACOSX)
+ base::debug::Alias(thread_name);
+#endif
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698