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

Unified Diff: base/tracked.cc

Issue 7778033: Add trace code to track all posted tasks in message_loop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: win trace tests Created 9 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
« base/tracked.h ('K') | « base/tracked.h ('k') | base/tracked_objects.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/tracked.cc
diff --git a/base/tracked.cc b/base/tracked.cc
index 124e721c727e8408c46b9025432f0e287b399c2b..904adc45a6cee1f7c8b7509ad12249d45085530d 100644
--- a/base/tracked.cc
+++ b/base/tracked.cc
@@ -13,6 +13,7 @@ void* _ReturnAddress();
#include "base/tracked.h"
+#include "base/string_number_conversions.h"
#include "base/stringprintf.h"
#include "base/tracked_objects.h"
@@ -22,28 +23,42 @@ namespace tracked_objects {
//------------------------------------------------------------------------------
-Location::Location(const char* function_name,
- const char* file_name,
- int line_number,
+Location::Location(const char* file_line,
+ const char* function_name,
const void* program_counter)
- : function_name_(function_name),
- file_name_(file_name),
- line_number_(line_number),
+ : file_line_(file_line),
+ function_name_(function_name),
program_counter_(program_counter) {
}
Location::Location()
- : function_name_("Unknown"),
- file_name_("Unknown"),
- line_number_(-1),
+ : file_line_("Unknown:-1"),
+ function_name_("Unknown"),
program_counter_(NULL) {
}
+const base::StringPiece Location::file_name() const {
+ base::StringPiece file_line(file_line_);
+ return file_line.substr(0, file_line.find_last_of(':'));
+}
+
+int Location::line_number() const {
+ base::StringPiece file_line(file_line_);
+ base::StringPiece::size_type colon1 = file_line.find_last_of(':');
+ int line_num = 0;
+ base::StringToInt(file_line.substr(colon1).as_string(), &line_num);
+ return line_num;
+}
+
+const base::StringPiece Location::function_name() const {
+ return base::StringPiece(function_name_);
joth 2011/09/15 10:38:09 nit: is there any point returning this as a string
jbates 2011/09/15 16:48:33 I went back and forth on this one -- I was on the
+}
+
void Location::Write(bool display_filename, bool display_function_name,
std::string* output) const {
base::StringAppendF(output, "%s[%d] ",
- display_filename ? file_name_ : "line",
- line_number_);
+ display_filename ? file_name().as_string().c_str() : "line",
+ line_number());
if (display_function_name) {
WriteFunctionName(output);
@@ -96,7 +111,7 @@ void Tracked::SetBirthPlace(const Location& from_here) {
}
const Location Tracked::GetBirthPlace() const {
- static Location kNone("NoFunctionName", "NeedToSetBirthPlace", -1, NULL);
+ static Location kNone("NeedToSetBirthPlace:-1", "NoFunctionName", NULL);
return kNone;
}
bool Tracked::MissingBirthPlace() const { return false; }
@@ -130,7 +145,7 @@ void Tracked::SetBirthPlace(const Location& from_here) {
}
const Location Tracked::GetBirthPlace() const {
- static Location kNone("UnknownFunctionName", "UnknownFile", -1, NULL);
+ static Location kNone;
return tracked_births_ ? tracked_births_->location() : kNone;
}
@@ -139,7 +154,8 @@ void Tracked::ResetBirthTime() {
}
bool Tracked::MissingBirthPlace() const {
- return !tracked_births_ || tracked_births_->location().line_number() == -1;
+ return !tracked_births_ ||
+ tracked_births_->location().program_counter() == NULL;
}
#endif // !defined(TRACK_ALL_TASK_OBJECTS)
« base/tracked.h ('K') | « base/tracked.h ('k') | base/tracked_objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698