Thanks Rodolph. When I try to build with v8_enable_gdbjit=true,
unfortunately, I run into compilation errors of gdb-jit for ARM64. Snippet
below shows the way try to build. It shows that I am using 7.1.1 - however,
it's the same problem with tip/master as well. Should I open a bug for this
one?
cc01:v8:[7.1.1]>gn gen --args="target_cpu=\"arm64\"
is_component_build=false v8_enable_gdbjit=true" out/7.1.1.debug.gdbjit
Done. Made 159 targets from 80 files in 346ms
cc01:v8:[7.1.1]>autoninja -C out/7.1.1.debug.gdbjit d8
ninja -C out/7.1.1.debug.gdbjit d8 -l 128
ninja: Entering directory `out/7.1.1.debug.gdbjit'
[1340/2173] CXX obj/v8_base/gdb-jit.o
FAILED: obj/v8_base/gdb-jit.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF
obj/v8_base/gdb-jit.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1
-DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC
-DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL
-DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE
-DCR_CLANG_REVISION=\"338452-1\" -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=332543
-DCR_LIBCXXABI_REVISION=331450
-DCR_SYSROOT_HASH=c68b2062879db201c4047d03c016227d3d1e7b35 -D_DEBUG
-DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1
-DENABLE_DISASSEMBLER -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64
-DENABLE_GDB_JIT_INTERFACE -DENABLE_MINOR_MC -DOBJECT_PRINT -DVERIFY_HEAP
-DV8_TRACE_MAPS -DV8_ENABLE_ALLOCATION_TIMEOUT -DV8_ENABLE_FORCE_SLOW_PATH
-DV8_ENABLE_CHECKS -DV8_DEPRECATION_WARNINGS
-DV8_IMMINENT_DEPRECATION_WARNINGS -DV8_INTL_SUPPORT
-DENABLE_HANDLE_ZAPPING -DV8_USE_SNAPSHOT -DV8_USE_EXTERNAL_STARTUP_DATA
-DV8_CONCURRENT_MARKING -DV8_CHECK_MICROTASKS_SCOPES_CONSISTENCY
-DV8_EMBEDDED_BUILTINS -DV8_TARGET_ARCH_ARM64 -DDEBUG
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -I../.. -Igen
-I../.. -Igen -I../../third_party/icu/source/common
-I../../third_party/icu/source/i18n -I../../include -fno-strict-aliasing
--param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined
-D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pthread
-fcolor-diagnostics -fmerge-all-constants -no-canonical-prefixes
-fcomplete-member-pointers --target=aarch64-linux-gnu -Wall -Werror -Wextra
-Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers
-Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default
-Wno-unneeded-internal-declaration -Wno-undefined-var-template
-Wno-nonportable-include-path -Wno-user-defined-warnings
-Wno-unused-lambda-capture -Wno-null-pointer-arithmetic
-Wno-enum-compare-switch -Wno-ignored-pragma-optimize
-fno-omit-frame-pointer -g2 -fvisibility=hidden -Wheader-hygiene
-Wstring-conversion -Wtautological-overlap-compare
-Wmissing-field-initializers -Winconsistent-missing-override
-Wunreachable-code -Wshorten-64-to-32 -O3 -fno-ident -fdata-sections
-ffunction-sections -Wno-undefined-bool-conversion
-Wno-tautological-undefined-compare -std=c++14 -fno-exceptions -fno-rtti
-nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include
-isystem../../buildtools/third_party/libc++abi/trunk/include
--sysroot=../../build/linux/debian_sid_arm64-sysroot
-fvisibility-inlines-hidden -c ../../src/gdb-jit.cc -o obj/v8_base/gdb-jit.o
../../src/gdb-jit.cc:668:2: error: Unsupported target architecture.
#error Unsupported target architecture.
^
../../src/gdb-jit.cc:697:2: error: Unsupported target architecture.
#error Unsupported target architecture.
^
../../src/gdb-jit.cc:670:27: error: use of undeclared identifier 'ident'
memcpy(header->ident, ident, 16);
^
../../src/gdb-jit.cc:838:27: error: use of undeclared identifier
'SerializedLayout'
void Write(Writer::Slot<SerializedLayout> s, ELFStringTable* t) const {
^
../../src/gdb-jit.cc:912:49: error: no member named 'SerializedLayout' in
'v8::internal::GDBJITInterface::ELFSymbol'
Writer::Slot<ELFSymbol::SerializedLayout> dst,
~~~~~~~~~~~^
../../src/gdb-jit.cc:870:29: error: no member named 'SerializedLayout' in
'v8::internal::GDBJITInterface::ELFSymbol'
Writer::Slot<ELFSymbol::SerializedLayout> symbols =
~~~~~~~~~~~^
../../src/gdb-jit.cc:870:47: error: C++ requires a type specifier for all
declarations
Writer::Slot<ELFSymbol::SerializedLayout> symbols =
^
../../src/gdb-jit.cc:871:39: error: no member named 'SerializedLayout' in
'v8::internal::GDBJITInterface::ELFSymbol'
w->CreateSlotsHere<ELFSymbol::SerializedLayout>(
~~~~~~~~~~~^
../../src/gdb-jit.cc:871:56: error: expected unqualified-id
w->CreateSlotsHere<ELFSymbol::SerializedLayout>(
^
../../src/gdb-jit.cc:880:34: error: no member named 'SerializedLayout' in
'v8::internal::GDBJITInterface::ELFSymbol'
symbols.at(0).set(ELFSymbol::SerializedLayout(0,
~~~~~~~~~~~^
../../src/gdb-jit.cc:907:44: error: no member named 'SerializedLayout' in
'v8::internal::GDBJITInterface::ELFSymbol'
header->entry_size = sizeof(ELFSymbol::SerializedLayout);
~~~~~~~~~~~^
../../src/gdb-jit.cc:1160:2: error: Unsupported target architecture.
#error Unsupported target architecture.
^
12 errors generated.
[1469/2173] CXX obj/v8_base/code-stub-assembler.o
ninja: build stopped: subcommand failed.
On Wednesday, December 12, 2018 at 12:08:13 PM UTC-6, Rodolph Perfetta
wrote:
>
> Just checking, when building v8, you did enable gdbjit?
> v8_enable_gdbjit=true in gn args. The blog you pointed to is a bit out of
> date.
>
>
>
> On Wed, 12 Dec 2018 at 07:49, Jakob Gruber <[email protected]
> <javascript:>> wrote:
>
>>
>>
>> On Tue, Dec 11, 2018 at 11:45 PM <[email protected] <javascript:>> wrote:
>>
>>> Hi,
>>>
>>> In some of the profiles that I have been looking at CheckObjectType
>>> comes out are pretty hot. I noticed that this is called multiple times from
>>> various builtins or other jitted code. I wanted to know where in jitted
>>> code or builtins is this call coming from.
>>>
>>
>> This doesn't answer your main question, but CheckObjectType calls only
>> occur in debug mode and are emitted when creating TNodes (typed nodes), see
>> here
>> <https://cs.chromium.org/chromium/src/v8/src/compiler/code-assembler.h?l=703&rcl=72448bedcf497b26a742fe96bb1d387d7421d10d>
>> .
>>
>>
>>>
>>> Unfortunately, I can not step into jitted code while running d8 with
>>> gdb. I found the following link which talks about gdb-jit
>>> https://v8.dev/docs/gdb-jit. It mostly talks about ia32.
>>>
>>> I was wondering if anyone has looked at running GDB on d8 on ARM64? Is
>>> it possible to break in the native code at all in ARM64?
>>>
>>> --
>> --
>> v8-dev mailing list
>> [email protected] <javascript:>
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
--
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].
For more options, visit https://groups.google.com/d/optout.