Microdumps: support aarch64 and lib mapping from APK

- Filter modules by prot flags (only +x) not extensions. It wouldn't
  otherwise catch the case of Chrome mapping the library from the
  apk (which is mapped r-x but doesn't end in .so).
- Use compile-time detection of target arch, in order to cope with
  multilib OSes, where uname() doesn't reflect the run-time arch.
- Add OS information and CPU arch / count.
- Add support for aarch64.
- Add tests and stackwalk expectations for aarch64.
- Fix a potential overflow bug in the processor.
- Rebaseline the tests using smaller symbols.
- Fix microdump_writer_unittest.cc on 32-bit host.

BUG=chromium:410294

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1407 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
primiano@chromium.org 2014-12-02 15:31:25 +00:00
parent 63919583ba
commit 0b6cc95246
21 changed files with 148960 additions and 777 deletions

View file

@ -29,9 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
source "${0%/*}/microdump_stackwalk_test_vars" # for MICRODUMP_SUPPORTED_ARCHS.
testdata_dir=$srcdir/src/processor/testdata
./src/processor/microdump_stackwalk $testdata_dir/microdump.dmp \
$testdata_dir/symbols/microdump | \
tr -d '\015' | \
diff -u $testdata_dir/microdump.stackwalk.out -
exit $?
set -e # Bail out with an error if any of the commands below fails.
for ARCH in $MICRODUMP_SUPPORTED_ARCHS; do
echo "Testing microdump_stackwalk for arch $ARCH"
./src/processor/microdump_stackwalk $testdata_dir/microdump-${ARCH}.dmp \
$testdata_dir/symbols/microdump | \
tr -d '\015' | \
diff -u $testdata_dir/microdump.stackwalk-${ARCH}.out -
done
exit 0