| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
BUG=28727
Review URL: http://codereview.chromium.org/7108053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88871 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
Review URL: http://codereview.chromium.org/7071036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87278 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
existing object exactly once and land the CL again:
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
TBR=jar
Review URL: http://codereview.chromium.org/6976044
TBR=glider@chromium.org
Review URL: http://codereview.chromium.org/7071035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86993 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exactly once and land the CL again:
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
TBR=jar
Review URL: http://codereview.chromium.org/6976044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86990 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit d4ff483fbf60aad0b49fddd1937774edb3ba1d7e.
---
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
---
TBR=glider@chromium.org
TEST=HistogramTest.RecordedStartupTest and WebSocketTest.ServerSentData in heapchecker bot wont hang.
BUG=79322
Review URL: http://codereview.chromium.org/6962016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86853 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
TBR=jar,willchan
Review URL: http://codereview.chromium.org/7062016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86794 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
We provided <(library) as a variable to support a peculiar
build configuration on Linux. We no longer support that build
configuration, so we can simplify this code to no longer use
a variable.
Review URL: http://codereview.chromium.org/7051014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86004 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for 15 secs.
Note that the renderer process is still using TCMALLOC, and this only changes the default in the browser process.
BUG=83285
TEST=memory unit tests
R=jar
Review URL: http://codereview.chromium.org/7047018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85998 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the suppressions)
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky.
The previous commit broke the build on Linux Heapcheck, but looks like the problem has gone now.
TBR=jar,willchan
BUG=79322
Review URL: http://codereview.chromium.org/7048005
TBR=glider@chromium.org
Review URL: http://codereview.chromium.org/7049006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85905 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky.
The previous commit broke the build on Linux Heapcheck, but looks like the problem has gone now.
TBR=jar,willchan
BUG=79322
Review URL: http://codereview.chromium.org/7048005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85898 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
defined os_posix, toolkit_gtk, and use_x11 in common.gypi to handle them. I used something similar when porting Chromium 10 and 11 to OpenBSD and Solaris, plus a version of this patch has been tested on FreeBSD.
Chromium has also been built on other BSDs, so rather than adding each Unix to every gyp file individually every time another port is added, these broad defines can be used instead and modified with specific logic only where necessary.
I included a few modified gyp files so the usage can be seen. I also added sunos5 to some grd/html files and set the default host_arch on i86pc solaris to ia32.
BUG=0
TEST={}
Patch by ruben <chromium@hybridsource.org>.
Review URL: http://codereview.chromium.org/6965007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85154 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
be used to markheap allocated objects as intentionally leaked ones.Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.BUG=79322Review URL: http://codereview.chromium.org/6869009
TBR=cbentzel
Review URL: http://codereview.chromium.org/6873152
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82483 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
Review URL: http://codereview.chromium.org/6869009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82460 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
will crash if free'ed memory is accessed (hoping to detect the
memory corrupters).
Landed the original CL to get results from stability tests.
BUG=76891
TBR=jar
Review URL: http://codereview.chromium.org/6676098
TBR=rtenneti@chromium.org
Review URL: http://codereview.chromium.org/6732018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79259 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
will crash if free'ed memory is accessed (hoping to detect the
memory corrupters).
BUG=76891
TBR=jar
Review URL: http://codereview.chromium.org/6676098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79258 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disabled the TCMalloc double-free detection,
which should restore much of the performance loss
caused by this experiment (to find double frees,
if any). This should resolve bug 76640
As an alternate experiment to better illuminate our
memory corruption problem, this CL also enables
WinHeap (default Windows allocator) in the browser
process. There is a chance that this will cause a
very tiny reduction in performance, but it will surely
increase our crash rate (based on what we saw recently
on the dev channel).
BUG=76640
r=rtenneti
Review URL: http://codereview.chromium.org/6705027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79224 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't think I want to ship this to dev or stable, but
I think it may be valuable to try on our canary
builds.
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
ALthough I haven't been able to demonstrate a
problem on the bots, I'm pretty psyched to try
to find something in the field with this change.
The perf loss is very low, and I think that the
likely cause for TCMalloc cross-linked-list
corruption (double frees) will be detected
(I can hope!)
R=mbelshe
BUG=75921
Review URL: http://codereview.chromium.org/6683029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78369 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'll revert as soon as the builds kick off.
TBR=willchan
Review URL: http://codereview.chromium.org/6677037
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6693013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78169 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
I'll revert as soon as the builds kick off.
TBR=willchan
Review URL: http://codereview.chromium.org/6677037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78166 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm hoping this will get us some crashes on double
frees, but I'm wary about performance impact, so I'll
land this, and then revert it, to see what impact
it has on the perf bots.
TBR=cpu
Review URL: http://codereview.chromium.org/6686022
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6686030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77962 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm hoping this will get us some crashes on double
frees, but I'm wary about performance impact, so I'll
land this, and then revert it, to see what impact
it has on the perf bots.
TBR=cpu
Review URL: http://codereview.chromium.org/6686022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77958 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[I just wanted to kick a reliability run with it as a test]
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
I did a first landing of this patch to test perf impact
and see what corruption it surfaced in:
http://src.chromium.org/viewvc/chrome?view=rev&revision=77941
It appears that Windows is not using TCMalloc on our bots.
TBR=mbelshe
Review URL: http://codereview.chromium.org/6683027
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6682020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77949 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
I did a first landing of this patch to test perf impact
and see what corruption it surfaced in:
http://src.chromium.org/viewvc/chrome?view=rev&revision=77941
It appears that Windows is not using TCMalloc on our bots.
TBR=mbelshe
Review URL: http://codereview.chromium.org/6683027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77948 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'll land and revert this quickly, to see what
impact it has on performance.
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
TBR=mbelshe
Review URL: http://codereview.chromium.org/6679021
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6679029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77942 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'll land and revert this quickly, to see what
impact it has on performance.
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
TBR=mbelshe
Review URL: http://codereview.chromium.org/6679021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77941 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[This is a re-landing of CL 6623059, which broke the
shared library build on windows in revision 77207.
An ifdef has been added to avoid the unresolved variable
when allocator_shim.cc is never even compiled]
Continue to support selection of a browser allocator
selection via the environment variable CHROME_ALLOCATOR,
and also add CHROME_ALLOCATOR_2 that can select the
allocator to use in subprocesses, such as a renderer.
Temporarilly set the browser default to the
default windows heap allocator, and the subprocess
allocator to TCMalloc to help detect memory corruption
in a cannary for a few days.
This may illuminate some flakiness in the tree, as
double frees (hidden by races) may cause crashes.
Add minor cleanup (removing reserved word "override"
etc.).
BUG=74901
TBR=mbelshe
Review URL: http://codereview.chromium.org/6623072
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77245 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Continue to support selection of a browser allocator
selection via the environment variable CHROME_ALLOCATOR,
and also add CHROME_ALLOCATOR_2 that can select the
allocator to use in subprocesses, such as a renderer.
Temporarilly set the browser default to the
default windows heap allocator, and the subprocess
allocator to TCMalloc to help detect memory corruption
in a cannary for a few days.
Add minor cleanup (removing reserved word "override"
etc.).
r=mbelshe
bug=74901
Review URL: http://codereview.chromium.org/6623059
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6623069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77208 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Continue to support selection of a browser allocator
selection via the environment variable CHROME_ALLOCATOR,
and also add CHROME_ALLOCATOR_2 that can select the
allocator to use in subprocesses, such as a renderer.
Temporarilly set the browser default to the
default windows heap allocator, and the subprocess
allocator to TCMalloc to help detect memory corruption
in a cannary for a few days.
Add minor cleanup (removing reserved word "override"
etc.).
r=mbelshe
bug=74901
Review URL: http://codereview.chromium.org/6623059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77207 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a test, and will be reverted as soon as the
build starts. We just want to see what the perf
bots have to say.
This CL changes the default allocator to be the
Windows Allocator (rather than TCMalloc), but then
overrides that default via the environment variable
control *during* the running of the browser_main.
The result is that the browser process will use the Windows
Allocator, but all sub-processes, such as renderers,
will use TCMalloc.
TBR=cpu
BUG=74901
Review URL: http://codereview.chromium.org/6624050
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6627045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77116 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a test, and will be reverted as soon as the
build starts. We just want to see what the perf
bots have to say.
This CL changes the default allocator to be the
Windows Allocator (rather than TCMalloc), but then
overrides that default via the environment variable
control *during* the running of the browser_main.
The result is that the browser process will use the Windows
Allocator, but all sub-processes, such as renderers,
will use TCMalloc.
TBR=cpu
BUG=74901
Review URL: http://codereview.chromium.org/6624050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77111 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'll revert this as soon as the builds kick off.
I just want to look at perf impact.
I'll ceate a fancier CL that uses different allocators
for render vs browser, but I wanted an overall baseline
for transitioning completely from TCMalloc to
the default allocator on Windows.
TBR=cpu
Review URL: http://codereview.chromium.org/6635004
TBR=jar@chromium.org
Review URL: http://codereview.chromium.org/6623041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77067 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'll revert this as soon as the builds kick off.
I just want to look at perf impact.
I'll ceate a fancier CL that uses different allocators
for render vs browser, but I wanted an overall baseline
for transitioning completely from TCMalloc to
the default allocator on Windows.
TBR=cpu
Review URL: http://codereview.chromium.org/6635004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77066 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=71130
Review URL: http://codereview.chromium.org/6523009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74966 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
work on incremental builds in VS2010.
This is breaking clobber builds with this error :
e:\b\build\slave\google-chrome-rel-win\build\src\chrome_frame\iids.cc(6) : fatal error C1083: Cannot open include file: 'chrome_tab.h': No such file or directory
BUG=71130
TEST=Check that Chrome builds.
Review URL: http://codereview.chromium.org/6307018
TBR=jeanluc@chromium.org
Review URL: http://codereview.chromium.org/6347032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73124 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
incremental builds in VS2010.
BUG=71130
TEST=Check that Chrome builds.
Review URL: http://codereview.chromium.org/6307018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73121 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Wbool-conversion warns about EXPECT_EQ(false, blah), so replace
that with EXPECT_FALSE(blah). Do the same with EXPECT_EQ(true, blah)
for good measure (even though that doesn't generate warnings).
Also remove the one instance of an unused variable.
BUG=69421
TEST=buildbots all compile and all tests pass
Review URL: http://codereview.chromium.org/6300001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71431 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
to gyp.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/6130007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71082 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
heap leak checker to unwind the memory allocation stacks better.
Currently, if a memory region is allocated from a library built without frame
pointers heapchecker is unable to unwind the stack and records only the top
frame. This is inconvenient, because:
-- several leaks from different places are treated as leaks from the same
source
-- it's hard to suppress such leaks, because a one-line suppression is
uninformative
linux_shadow_stacks.cc keeps the threads' IP and SP values in thread-local
stacks upon each function entry/exit using gcc function instrumentation
(-finstrument-functions).
The GetStackTrace routine from stacktrace_shadow-inl.h unwinds the stack as
usual (using frame pointers), but then updates the result with the shadow stack
frames which SP values are below the bottom frame of the unwind result.
Note that -finstrument-functions affects only Chromium code, not the libraries.
This means that we cannot get more than one library function frame at the top
of the stack.
For example, consider a libfoo library that has a public foo_do_something()
routine which allocates memory via foo_alloc(). If Chromium calls
foo_do_something() from ChromeCallFoo(), then the following call chain
effectively happens:
main -> ChromeCallFoo -> foo_do_something -> foo_alloc
If libfoo is built with -fomit-frame-pointers, heapcheck can unwind only the
last stack frame:
foo_alloc
On the other hand, the shadow stack at the allocation site contains everything
below the libfoo calls:
main -> ChromeCallFoo
As a result the following allocation stack is recorded:
main -> ChromeCallFoo -> foo_alloc
This is enough to distinguish between e.g. ChromeCallFoo1 and ChromeCallFoo2
Review URL: http://codereview.chromium.org/3120017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57658 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allocator target should be added as dependency only when
win_use_allocator_shim is 1.
Also fix a typo in allocator_shim.cc
R=jvoung@google.com, mbelshe@chromium.org
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/3011011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52947 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
We can't afford using r94 due to a performance regression.
TBR=willchan,antonm,jar,mbelshe
Review URL: http://codereview.chromium.org/2144003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48145 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
the performance.
Review URL: http://codereview.chromium.org/2164001
TBR=antonm,willchan
Review URL: http://codereview.chromium.org/2155002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48032 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=antonm,willchan
Review URL: http://codereview.chromium.org/2164001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48024 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on willchan's patch here: http://codereview.chromium.org/2109009/show
BUG=40149
TEST=none
TBR=willchan
Review URL: http://codereview.chromium.org/2137010
TBR=thestig@chromium.org
Review URL: http://codereview.chromium.org/2107016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47933 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
running tcmalloc under Valgrind.
Review URL: http://codereview.chromium.org/1735024
TBR=willchan,antonm
Review URL: http://codereview.chromium.org/2138002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47909 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Based on willchan's patch here: http://codereview.chromium.org/2109009/show
BUG=40149
TEST=none
TBR=willchan
Review URL: http://codereview.chromium.org/2137010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47897 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
under Valgrind.
Review URL: http://codereview.chromium.org/1735024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47789 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
a circular gyp dependency between allocator.gyp and base.gyp.
BUG=44538
Review URL: http://codereview.chromium.org/2108016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47637 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/1992005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47252 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Setting this flag to 1 shall force the use of debugallocation.cc instead of
tcmalloc.cc
The flag is off by default because it still needs testing.
BUG=30715
Review URL: http://codereview.chromium.org/1513043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44759 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
lleak checker on and off.
Review URL: http://codereview.chromium.org/1334002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42740 0039d316-1c4b-4281-b951-d872f2087c98
|