diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 22:28:25 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 22:28:25 +0000 |
commit | fcb30f7bc726a11540d942deec17baf62511c2e0 (patch) | |
tree | a6f695de8a0f6689cd7a7565ae199277f151141b /base/message_loop.h | |
parent | 216813957f67962e1c50fcbbad0d3e8fcd17760e (diff) | |
download | chromium_src-fcb30f7bc726a11540d942deec17baf62511c2e0.zip chromium_src-fcb30f7bc726a11540d942deec17baf62511c2e0.tar.gz chromium_src-fcb30f7bc726a11540d942deec17baf62511c2e0.tar.bz2 |
Tag all tracked objects, including Tasks, with the program counter at the site of FROM_HERE.
This is to make it easier to determine the site Tasks are posted from in release builds, especially when only a minidump is available. It should help diagnose http://crbug.com/81499.
I added a debug function to alias variables so that the optimizer will not strip them out if they are not live.
The semantics of the MessageLoop::PostTask functions is changed and it is wrong but I am not sure what semantics are intended. It seems location information was no longer being tracked for Tasks wrapped as Closures and I don't know if this was intended. PTAL. Update: this has since been fixed.
TEST=Set breakpoint in TaskClosureAdapter::Run and very that the post site can be located in an optimized build.
BUG=81499
Review URL: http://codereview.chromium.org/7039020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85991 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop.h')
-rw-r--r-- | base/message_loop.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/base/message_loop.h b/base/message_loop.h index c747947..c660c9e 100644 --- a/base/message_loop.h +++ b/base/message_loop.h @@ -415,6 +415,9 @@ class BASE_API MessageLoop : public base::MessagePump::Delegate { // OK to dispatch from a nested loop. bool nestable; + + // The site this PendingTask was posted from. + const void* birth_program_counter; }; class TaskQueue : public std::queue<PendingTask> { |