Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(7)

Issue 40007: output function names for PGO-optimized cold function blocks (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
15 years ago by Ted Mielczarek
Modified:
15 years ago
Reviewers:
Mark Mentovai
Base URL:
http://google-breakpad.googlecode.com/svn/trunk/
Visibility:
Public.

Description

Background here:
https://bugzilla.mozilla.org/show_bug.cgi?id=526484

But in short: when building with VC++'s PGO, one of the optimizations it will
perform is moving not-called (or not-frequently called) code to separate pages.
(See http://msdn.microsoft.com/en-us/library/e7k32f4k%28VS.80%29.aspx ) This
means that functions can become non-contiguous. Currently pdb_source_line_writer
does not see these blocks, so crash stacks that go through these blocks wind up
without function names.

This patch enumerates these blocks and writes out an extra FUNC line for each of
them. Source line data is unfortunately unavailable, at least with VC2005, due
to what looks like a compiler bug. Still, function names are better than nothing
in this case. I ran dump_syms on xul.pdb from a Firefox built with PGO, and
diffed the output against the original, and the only changes were the additional
FUNC lines.

We see this in the wild with some of our crash reports (the impetus for
investigating this was a topcrash whose top frame was in one of these blocks.
:-/)

Mark, can you take a look at this patch?

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats Patch
src/common/windows/pdb_source_line_writer.cc View 3 chunks +63 lines, -4 lines 0 comments Download
src/common/windows/pdb_source_line_writer.h View 1 chunk +4 lines, -1 line 0 comments Download

Messages

Total messages: 2
Ted Mielczarek
15 years ago #1
Mark Mentovai
15 years ago #2
LGTM.  Nice.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted