gohome1984 / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
0 stars 0 forks source link

Fix minidump generation on Linux on AMD x86-64 #299

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
There is a problem in minidump generation for application, working in
32 compatibility mode on Linux AMD x86-64.
The thing is, that Linux on this machine uses this __kernel_vsyscall
vdso: arch/x86/vdso/vdso32/syscall.S, which
has one terrible instruction before real execution of 'syscall': movl
%ecx, %ebp. This instruction corrupts %ebp, and
breakpad can't generate correct stack for task, working in kernel.
This patch tries to detect that task working in syscall and restores
%ebp from %esp, which contains last correct %ebp.

Original issue reported on code.google.com by r.peni...@gmail.com on 27 Feb 2009 at 7:56

Attachments:

GoogleCodeExporter commented 9 years ago
Hi
Thanks for the patch.  Can you confirm if you've filled out the Contributor 
License
Agreement?

http://code.google.com/p/google-breakpad/wiki/ContributingToBreakpad

Thanks,

Neal

Original comment by neal...@gmail.com on 27 Feb 2009 at 10:27

GoogleCodeExporter commented 9 years ago
Yep, I signed electronically with this form:
http://code.google.com/legal/individual-cla-v1.0.html. Google said thanks to 
me, and
"my form would be processed shortly", or smth like that.

Original comment by r.peni...@gmail.com on 28 Feb 2009 at 7:30

GoogleCodeExporter commented 9 years ago
Folks, any ping?

Original comment by r.peni...@gmail.com on 12 Mar 2009 at 9:17

GoogleCodeExporter commented 9 years ago
Neal, we gonna take this?

Original comment by mark@chromium.org on 2 Dec 2009 at 6:25

GoogleCodeExporter commented 9 years ago
I'm not sure if this is necessary any more with the symbol files I checked in in
src/client/linux/data.

r.peniaev: can you read the doc at
http://code.google.com/p/google-breakpad/wiki/LinuxSystemCalls and tell me if 
these
two different solutions are for the same problem? it seems to me that they are. 
 i
read your code but it's adaptation to the rewrite of Linux Breakpad is not 
clear.

Thanks!

Original comment by neal...@google.com on 3 Dec 2009 at 4:48

GoogleCodeExporter commented 9 years ago
Yep, this two solutions are for the same problem.
When did you commit support for different linux-gate's ? 

Original comment by r.peni...@gmail.com on 3 Dec 2009 at 7:41

GoogleCodeExporter commented 9 years ago

Original comment by ted.mielczarek on 9 Dec 2009 at 8:47

GoogleCodeExporter commented 9 years ago
It was several months ago.  Both solutions are perfectly acceptable, but since 
the 
processor already has a mechanism to walk nonstandard stacks with the extra 
information in a symbol file, it felt like I was taking advantage of something 
that 
someone had already put time into, anyway, which is why I went with the symbol 
file.

Original comment by neal...@google.com on 9 Dec 2009 at 8:51