Hi Chris,
This build step is just running a program: run.py executes whatever is on
the command line after it. To get a better error details, you can re-run
./mksnapshot in a debugger with all of the provided arguments. When doing
so, I see a failure at the following call stack:
00 mksnapshot!abort
01 mksnapshot!std::__1::__libcpp_abort_debug_function
02
mksnapshot!std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int,v8::internal::compiler::Node
*>,void *> *>::operator->
03 mksnapshot!std::__1::unordered_map<int,v8::internal::compiler::Node
*,v8::base::hash<int>,std::__1::equal_to<int>,v8::internal::ZoneAllocator<std::__1::pair<const
int,v8::internal::compiler::Node *> > >::operator[]
04
mksnapshot!v8::internal::compiler::NodeCache<int,v8::base::hash<int>,std::__1::equal_to<int>
>::Find
05 mksnapshot!v8::internal::compiler::CommonNodeCache::FindInt32Constant
06 mksnapshot!v8::internal::compiler::MachineGraph::Int32Constant
07 mksnapshot!v8::internal::compiler::CodeAssembler::Int32Constant
08
mksnapshot!v8::internal::FromConstexpr_IterationKind_constexpr_IterationKind_0
09 mksnapshot!v8::internal::DownCastForTorqueClass_JSFunction_0
0a mksnapshot!v8::internal::Cast_JSFunction_0
0b mksnapshot!v8::internal::CollectCallFeedback_0
0c mksnapshot!v8::internal::CollectCallFeedback_1
0d
mksnapshot!v8::internal::CallWithSpread_WithFeedbackAssembler::GenerateCallWithSpread_WithFeedbackImpl
0e mksnapshot!v8::internal::Builtins::Generate_CallWithSpread_WithFeedback
0f mksnapshot!v8::internal::`anonymous
namespace'::BuildWithCodeStubAssemblerCS
10 mksnapshot!v8::internal::SetupIsolateDelegate::SetupBuiltinsInternal
11 mksnapshot!v8::internal::Isolate::Init
12 mksnapshot!v8::internal::Isolate::InitWithoutSnapshot
13 mksnapshot!v8::SnapshotCreator::SnapshotCreator
14 mksnapshot!v8::internal::CreateSnapshotDataBlobInternal
15 mksnapshot!`anonymous namespace'::CreateSnapshotDataBlob
16 mksnapshot!main
17 mksnapshot!invoke_main
18 mksnapshot!__scrt_common_main_seh
19 KERNEL32!BaseThreadInitThunk
1a ntdll!RtlUserThreadStart
By the way, you can just set "enable_iterator_debugging = true" in
out/Release/args.gn rather than editing BUILD.gn if you like 😊.
-Seth
On Tuesday, October 13, 2020 at 1:42:36 PM UTC-7 Chris Palmer wrote:
> Hi all,
>
> I'm doing an experiment: turning on increased checks in Chromium's copy of
> libcxx (LLVM's C++ library). I use this diff:
>
> diff --git a/build/config/c++/BUILD.gn b/build/config/c++/BUILD.gn
> index f1c18b9f35fd..3718fc40773d 100644
> --- a/build/config/c++/BUILD.gn
> +++ b/build/config/c++/BUILD.gn
> @@ -68,11 +68,12 @@ config("runtime_library") {
> # libc++ has two levels of debug mode. Setting _LIBCPP_DEBUG to zero
> # enables most assertions. Setting it to one additionally enables
> iterator
> # debugging. See
> https://libcxx.llvm.org/docs/DesignDocs/DebugMode.html
> - if (enable_iterator_debugging) {
> - defines += [ "_LIBCPP_DEBUG=1" ]
> - } else if (is_debug || dcheck_always_on) {
> - defines += [ "_LIBCPP_DEBUG=0" ]
> - }
> + #if (enable_iterator_debugging) {
> + # defines += [ "_LIBCPP_DEBUG=1" ]
> + #} else if (is_debug || dcheck_always_on) {
> + # defines += [ "_LIBCPP_DEBUG=0" ]
> + #}
> + defines += [ "_LIBCPP_DEBUG=1" ]
> }
>
> _LIBCPP_DEBUG=1 turns on debugging checks in many std:: classes, and also
> checks in iterators. (_LIBCPP_DEBUG=0 turns on debugging checks but *not* in
> iterators.)
>
> When building, I get this explosion:
>
> ninja: Entering directory `out/Release'
> [1/1] Regenerating ninja files
> [39041/39294] ACTION
> //v8:run_mksnapshot_default(//build/toolchain/linux:clang_x64)
> FAILED: gen/v8/embedded.S snapshot_blob.bin
> python ../../v8/tools/run.py ./mksnapshot --turbo_instruction_scheduling
> --target_os=linux --target_arch=x64 --embedded_src gen/v8/embedded.S
> --embedded_variant Default --random-seed 314159265 --startup_blob
> snapshot_blob.bin --no-native-code-counters
> ../../buildtools/third_party/libc++/trunk/include/__hash_table:337:
> _LIBCPP_ASSERT '__get_const_db()->__dereferenceable(this)' failed.
> Attempted to dereference a non-dereferenceable unordered container iterator
> Return code is -6
> ninja: build stopped: subcommand failed.
>
> Unfortunately, I don't know how to get you a better error message. Any
> clues on that? Assuming the check itself is correct, it looks like there's
> a bug somewhere in V8.
>
--
--
v8-dev mailing list
[email protected]
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/v8-dev/ddc51578-12eb-4692-9124-35eb3b2eafddn%40googlegroups.com.