Commit graph

515 commits

Author SHA1 Message Date
mseaborn@chromium.org
b45b97b2fd Make x86-64 stack walking work for Native Client minidumps
For NaCl, a stack walker should ignore the top 32 bits of %rip, %rsp
and %rbp, otherwise it will try to read from %r15-extended stack
addresses and look up symbol info for %r15-extended code addresses,
which will fail.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3424
TEST=tested manually with a NaCl minidump

Review URL: https://breakpad.appspot.com/591002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1173 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-05-08 02:37:15 +00:00
mseaborn@chromium.org
85c352695f Add MD_OS_NACL platform_id value for identifying NaCl minidumps
Change minidump-2-core to accept minidumps with this platform_id value
rather than rejecting them as non-Linux dumps.

Add a missing "break" for a MD_OS_PS3 case.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3424
TEST= tested with work-in-progress NaCl minidump generator

Review URL: https://breakpad.appspot.com/590002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1172 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-05-06 23:33:02 +00:00
mseaborn@chromium.org
b43dacb23a Fix an "unused variable" compiler warning in exploitability_win.cc
BUG=none
TEST=compile with "-Wall -Werror"

Review URL: https://breakpad.appspot.com/588003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1171 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-05-06 23:27:28 +00:00
thestig@chromium.org
0bdc714c20 Add MD_OS_PS3 to breakpad and exception types.
A=Jia Ji <jijia@google.com>
Original review: https://breakpad.appspot.com/571002/

Review URL: https://breakpad.appspot.com/574002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1165 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-25 20:36:31 +00:00
digit@chromium.org
593eff42ca Improve ARM CPU info reporting.
This patch improves several things for Linux/ARM:

- Better detection of the number of CPUs on the target
  device. The content of /proc/cpuinfo only matches the
  number of "online" CPUs, which varies over time with
  recent Android devices.

- Reconstruct the CPUID and ELF hwcaps values from
  /proc/cpuinfo, this is useful to better identify
  target devices in minidumps.

- Make minidump_dump display the new information
  in useful ways.

- Write a small helper class to parse /proc/cpuinfo
  and also use it for x86/64.

- Write a small helper class to parse sysfds cpu lists.

- Add a my_memchr() implementation.

- Add unit tests.

Tested on a Nexus S (1 CPU), Galaxy Nexus (2 CPUs)
and a Nexus 4 (4 CPUs).

Review URL: https://breakpad.appspot.com/540003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1160 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-24 10:06:14 +00:00
thestig@chromium.org
9f45f6b5cf Cleanup: Remove duplicate wording in license headers.
BUG=505

Review URL: https://breakpad.appspot.com/498002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1159 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-23 23:18:39 +00:00
thestig@chromium.org
697da828dc Fix Bigcluster build error with minidump.cc after r1147.
A=Jia Ji <jijia@google.com>
Original review: https://breakpad.appspot.com/563002/

Review URL: https://breakpad.appspot.com/564003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1156 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-19 22:05:07 +00:00
ted.mielczarek@gmail.com
d9c3ad7b88 minidump_stackwalk should display r12 in ARM stack traces
A=torne@google.com, R=ted, http://code.google.com/p/google-breakpad/issues/detail?id=456

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1151 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-17 13:37:39 +00:00
ted.mielczarek@gmail.com
91c9518af2 Don't print an error when a user-set max frames limit has been reached in the stackwalker
Patch by Julian Seward <jseward@acm.org>, R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=859745

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1150 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-16 17:55:21 +00:00
thestig@chromium.org
0c759c6f62 Add PPC64 support to breakpad processor.
A=Jia Ji <jijia@google.com>
Original review: https://breakpad.appspot.com/557002/
Review URL: https://breakpad.appspot.com/558002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1147 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-12 23:24:02 +00:00
jessicag.feedback
2652675ec2 Turn off verbose logging but keep logic for future reference for debug logging.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1144 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-05 00:53:45 +00:00
mark@chromium.org
b41ad66e93 These are prerequisites needed for a wider effort inside Google to enable
structured logging.  This is basically wrapping std::ostream within a new type. 
No functional differences from this change are expected.

Patch by Ivan Penkov <ivan.penkov@gmail.com>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1140 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-03 18:31:16 +00:00
ivan.penkov@gmail.com
60b5f7c7e9 Keeping track of modules without symbols during crash report processing.
http://breakpad.appspot.com/534002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1126 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-06 19:32:13 +00:00
ted.mielczarek@gmail.com
93a48343ee Fix some more Win32 compat issues in processor code
R=mark at https://breakpad.appspot.com/535003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1122 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-06 14:06:52 +00:00
ted.mielczarek@gmail.com
aeffe1056f Use stdint types everywhere
R=mark at https://breakpad.appspot.com/535002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-06 14:04:42 +00:00
ted.mielczarek@gmail.com
c02002a581 Work around Windows headers #defining ERROR by renaming enum values in StackFrameSymbolizer
Patch by Julian Seward <jseward@acm.org>, R=ted

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1120 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-04 15:42:50 +00:00
ted.mielczarek@gmail.com
cd04fe2c88 Remove unnecessary #include unistd.h
(no review, trivial change)

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1119 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-01 17:33:25 +00:00
ted.mielczarek@gmail.com
52925cb9b3 minidump_stackwalk: Show argument registers for ARM stack traces
Patch by Michael Krebs <mkrebs@chromium.org>, R=ted at https://breakpad.appspot.com/497002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1108 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-01-31 19:49:03 +00:00
jimblandy
be81ededf8 Print the correct return address, even on architectures where StackFrame::instruction is offset.
a=bruce.dawson, r=jimblandy


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1105 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-01-22 22:38:41 +00:00
ted.mielczarek@gmail.com
a151d78133 Fix a couple of warnings in stack_frame_symbolizer code
R=SiyangXie at https://breakpad.appspot.com/509003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1097 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-01-18 13:40:40 +00:00
ted.mielczarek@gmail.com
63c5d98003 Move scoped_ptr.h to common
R=mark at https://breakpad.appspot.com/509002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-01-17 15:53:56 +00:00
ivan.penkov@gmail.com
947ef27362 The Google-breakpad processor rejects (ignores) context records that lack CPU type information in their context_flags fields. Such context records can be valid (e.g. contexts captured by ::RtlCaptureContext).
http://code.google.com/p/google-breakpad/issues/detail?id=493

http://breakpad.appspot.com/500002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1088 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-12-08 03:18:52 +00:00
ted.mielczarek@gmail.com
0a636257d4 Allow StackwalkerARM to scan much farther to find the caller of the context frame
R=jimb at https://breakpad.appspot.com/501002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1086 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-12-04 19:30:31 +00:00
ivan.penkov@gmail.com
c937b0ee01 Cleaning up google-breakpad source code of signed-unsigned comparison warnings
http://breakpad.appspot.com/488002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1083 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-11-21 01:33:08 +00:00
ted.mielczarek@gmail.com
fc6f700bb5 Allow processing dumps with missing stack memory for some threads
r=mkrebs at https://breakpad.appspot.com/413002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1077 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-11-06 16:50:01 +00:00
ivan.penkov@gmail.com
66a21aad61 Wrong %ebp after skipping a frame for which the instruction pointer is not in a known module.
http://breakpad.appspot.com/494002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1076 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-11-02 21:43:58 +00:00
SiyangXie@gmail.com
c14298db63 Fix a compile warning in stack_frame_symbolizer.cc
http://breakpad.appspot.com/493002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1074 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-11-01 20:58:23 +00:00
SiyangXie@gmail.com
ff8cad8ae6 Check-in stack_frame_symbolizer.[h|cc] that were missing in r1068.
http://breakpad.appspot.com/484002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1069 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-10-11 17:58:37 +00:00
SiyangXie@gmail.com
bab770045b Refactor the logic of resolving source line info into helper class.
http://breakpad.appspot.com/459002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1068 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-10-10 21:41:52 +00:00
qsr@chromium.org
6446cfcff0 processor: add arm exception flags
From inspection of Apple headers and
https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp

Review: https://breakpad.appspot.com/457003/
Patch by: jaysoffian@gmail.com



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1048 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-25 08:30:48 +00:00
ted.mielczarek@gmail.com
67364c1326 Allow generating minidumps from live process on Linux via ExceptionHandler
Original patch by Chris Jones <jones.chris.g@gmail.com> at https://bugzilla.mozilla.org/show_bug.cgi?id=544936 and https://bugzilla.mozilla.org/show_bug.cgi?id=555309
R=mark at https://breakpad.appspot.com/449003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1043 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-18 18:51:56 +00:00
ted.mielczarek@gmail.com
52935b4e81 Add a GetInstructionPointer method to MinidumpException
R=mark at https://breakpad.appspot.com/444003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1039 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-17 14:01:28 +00:00
ted.mielczarek@gmail.com
3e3324b06b Fix processor to build with clang
R=mark at http://breakpad.appspot.com/451002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1035 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-10 19:46:19 +00:00
thestig@chromium.org
44c27420e2 Fix compiler warnings on Ubuntu Precise. Pull in gmock r408 in the process.
BUG=490
Review URL: https://breakpad.appspot.com/448002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1034 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-10 18:26:31 +00:00
ted.mielczarek
da1568ac03 Move minidump_extension_linux.h contents into minidump_format.h
R=mark at https://breakpad.appspot.com/415002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@991 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-20 12:38:31 +00:00
digit@chromium.org
8d96707553 Add MD_OS_ANDROID definition.
In order to better distinguish Android and Linux minidumps, introduce
a new MD_OS_ANDROID definition, and modify related source code accordingly.

Also append the build-fingerprint to the minidump location descriptor.
This gives more information about the system image the device runs on.
Review URL: https://breakpad.appspot.com/405002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@981 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-04 11:56:26 +00:00
ivan.penkov@gmail.com
5f6e1f0fe7 Fixing various compiler warnings and applying minor tweaks to allow running of
the mojority of breakpad unittests in Google.

http://breakpad.appspot.com/399002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@978 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-02 22:55:57 +00:00
ivan.penkov@gmail.com
1a7a0a4d4b Fixing a mem leak in test code
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@975 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-06-29 22:34:04 +00:00
ivan.penkov@gmail.com
6de969a304 This change allows compiling the google-breakpad code using a global ::string class instead of std::string. For more details take a look at common/using_std_string.h
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@974 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-06-28 22:46:01 +00:00
ivan.penkov@gmail.com
1208a8e369 This is a fix for a stackwalker_x86 issue which has to
do with FPO (frame-pointer-omission) optimized context
frames where the context frame represents a Windows
System call stub.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@971 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-06-12 21:18:45 +00:00
jimblandy
d1118d6e14 In the AMD64 stackwalker, use heuristics to provide %rbp more often, as
subsequent frames are usually unable to use CFI if they don't have an %rbp
value.

a=mrmiller, r=jimb


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@960 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-04-25 21:11:10 +00:00
mkrebs@chromium.org
70f5af9444 Fix GetMainModule() to properly get first module
Change MinidumpModuleList::GetMainModule() to use GetModuleAtIndex() instead
of GetModuleAtSequence() because the former gets the first module that was
in the minidump file, while the latter actually gets the first module when
sorted by address.  While this is pretty much the same thing at the moment,
I have another change in the works that can sometimes affect the module
order in the file.

BUG=chromium-os:25355
TEST=Ran Breakpad tests
Review URL: https://breakpad.appspot.com/366001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@941 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-03-30 21:59:16 +00:00
benchan@chromium.org
1d8752bf0f Fix memory leak in DisassemblerX86.
A memory leak in DisassemblerX86 is detected by valgrind. This patch
fixes the DisassemblerX86 destructor to properly free the |current_instr_|
variable.

BUG=471
TEST=Run valgrind on disassembler_x86_unittest to verify the leak is gone.
Review URL: https://breakpad.appspot.com/371001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@940 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-03-30 21:01:09 +00:00
qsr@chromium.org
1e8d2d5a4c Add high level API for breakpad on iOS.
The new API allows to automatically upload repports to the crash server when the application restarts.

 This change also:
 - Correct a bug on the test for correct alignment of the abrt signal handler
 - Add user friendly information on crashes for SIGABRT and NSException
Review URL: https://breakpad.appspot.com/361001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@935 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-03-13 20:02:40 +00:00
mark@chromium.org
84a55c5a72 Support for .raSearch in the x86 stackwalker
Patch by Benjamin Smedberg <bsmedberg@gmail.com>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@927 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-23 22:56:53 +00:00
mark@chromium.org
26c31918f7 Handle program strings with the assignment operator smashed against the next
token.

Patch by Benjamin Smedberg <bsmedberg@gmail.com>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@926 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-23 22:41:36 +00:00
mark@chromium.org
7caf87236a Fix an invalid cast in PostfixEvaluator<ValueType>::EvaluateInternal().
This patch fixes a compilation error with gcc / clang on Linux / Mac OS.

BUG=none
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6.
2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock).
3. All unit tests pass.

Patch by Ben Chan <benchan@chromium.org>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@924 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-23 18:44:45 +00:00
ted.mielczarek
f2e937f1cb Add support for @ operator to PostfixEvaluator
R=mark at http://breakpad.appspot.com/349002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@923 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-21 23:15:30 +00:00
benchan@chromium.org
384c078d2e Clear error state flags in binarystream::rewind().
This patch is taken from the downstream google-breakpad in Chromium OS
(https://gerrit.chromium.org/gerrit/#change,7797), which makes
binarystream::rewind() properly clear error state flags.

BUG=460
TEST=Tested in downstream google-breakpad in Chromium OS.
A=asharif@chromium.org
Review URL: http://breakpad.appspot.com/339001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@901 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-01-09 19:43:11 +00:00
benchan@chromium.org
25b886a7fd Fix ContextDeathTest.X86BadFlags unit test on Mac OS X.
The assertion (context.context_flags & MD_CONTEXT_X86) in synth_minidump.cc
produces a different message on Mac OS X than other platforms. This patch
changes the ContextDeathTest.X86BadFlags test to handle both message patterns.

BUG=424
TEST=Verified ContextDeathTest.X86BadFlags on Windows, Linux and Mac OS X.
Review URL: http://breakpad.appspot.com/333001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@894 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-12-16 02:15:11 +00:00