[+crashpad-dev]

*From: *irinayat via v8-dev <v8-dev@googlegroups.com>
*Date: *Tue, May 7, 2019 at 1:12 AM
*To: *v8-dev

We are observing in dumps collected by Crashpad that if the crash was due
> to V8_Fatal, the relevant data might not be included.
>
> For example, in v8::internal::ConcurrentMarking::Run:
>   current_marked_bytes += visitor.Visit(map, object);
> might hit UNREACHABLE() if visitor_id in the map is invalid:
>
> v8::internal::ConcurrentMarking::Run+0x684
> [\v8\src\heap\concurrent-marking.cc @ 821]:
>   821 00007ffd`f46738c4 4489bc248c000000 mov     dword ptr [rsp+8Ch],r15d
>   821 00007ffd`f46738cc 4c8b20           mov     r12,qword ptr [rax]
>   822 00007ffd`f46738cf 488bbc24d0110000 mov     rdi,qword ptr [rsp+11D0h]
>   822 00007ffd`f46738d7 418a44240a       mov     al,byte ptr [r12+0Ah]
>   822 00007ffd`f46738dc 3c37             cmp     al,37h // case
> kVisitorIdCount
>   822 00007ffd`f46738de 0f8709320000     ja
> v8::internal::ConcurrentMarking::Run+0x38ad (00007ffd`f4676aed)  Branch
>
> v8::internal::ConcurrentMarking::Run+0x38ad
> [\v8\src\heap\concurrent-marking.cc @ 879]:
>   879 00007ffd`f4676aed 488d0d14291e04  lea     rcx,[(00007ffd`f8859408)]
>   879 00007ffd`f4676af4 4c8d059a222704  lea     r8,[(00007ffd`f88e8d95)]
>   879 00007ffd`f4676afb 31d2            xor     edx,edx
>   879 00007ffd`f4676afd e87e22d701      call    V8_Fatal
> (00007ffd`f63e8d80)
>
> Producing a callstack similar to this:
> 00 base::win::`anonymous namespace'::ForceCrashOnSigAbort
> 01 raise
> 02 v8::base::OS::Abort
> 03 V8_Fatal
> 04 v8::internal::ConcurrentMarking::Run
> 05 base::TaskAnnotator::RunTask
>
> It would be useful to see the map and the nearby memory around the bad
> object to speculate about the possible cause of the corruption. However,
> even though the local "object" in the frame is captured:
> 0:014> .frame 4; dv object
> 04 000000dc`aa7fe1c0 00007ffd`f3efdd57
> msedge_child!v8::internal::ConcurrentMarking::Run+0x38c2
> [\v8\src\heap\concurrent-marking.cc @ 879]
> (*((v8::internal::HeapObject *)0xdcaa7ff390))
>     [+0x000] ptr_             : 0x54f91472b6c1 [Type: unsigned __int64]
>
> the target memory for it isn't included into the dump.
> r12 (see 00007ffd`f46738d7) is pushed onto the stack by raise so can
> figure it out, but its target memory region is also not included into the
> dump. Dead end.
>
> What are the heuristics used by Crashpad when determining which data to
> include into the dump? They seem to work sufficiently well when the crash
> is caused by a read/write AV directly on a local variable but not when
> V8_Fatal is involved.
> I'd expect to see similar issues with dumps for crashes on CHECK, etc.
> What could be done to make them more actionable?
>
> --
> --
> v8-dev mailing list
> v8-dev@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAKSzg3TJ3MNC-_gHUzxVAA4%3Dtxm7etJkD%2B-_kBg1TtPo_UC8zw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to