dragonfly
dragonfly copied to clipboard
SIGILL on Celeron J4115 CPU
Describe the bug
Running the ./dragonfly-x86_64
binary results in SIGILL abort.
To Reproduce Steps to reproduce the behavior:
- Run
./dragonfly-x86_64
Environment (please complete the following information):
- OS: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
- Kernel: 5.15.0-52-generic
- Containerized?: no
- Dragonfly Version:
dragonfly v0.10.0-10c3d9f66607c856d04d918059ddb9397aee4725
debug information
gdb --eval-command=run --eval-command=bt --batch --args ./dragonfly-x86_64 --logtostderr
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
0x0000555555639364 in ?? ()
#0 0x0000555555639364 in ?? ()
#1 0x00005555555ef301 in ?? ()
#2 0x00007ffff7a70d90 in __libc_start_call_main (main=main@entry=0x5555555eeef0, argc=argc@entry=2, argv=argv@entry=0x7fffffffe338) at ../sysdeps/nptl/libc_start_call_main.h:58
#3 0x00007ffff7a70e40 in __libc_start_main_impl (main=0x5555555eeef0, argc=2, argv=0x7fffffffe338, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe328) at ../csu/libc-start.c:392
#4 0x00005555555f140e in ?? ()```
Additional context
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 122
model name : Intel(R) Celeron(R) J4115 CPU @ 1.80GHz
stepping : 1
microcode : 0x3c
cpu MHz : 2380.800
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 24
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_mode_based_exec tsc_scaling
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
bogomips : 3571.20
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 122
model name : Intel(R) Celeron(R) J4115 CPU @ 1.80GHz
stepping : 1
microcode : 0x3c
cpu MHz : 2380.810
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 24
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_mode_based_exec tsc_scaling
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
bogomips : 3571.20
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 122
model name : Intel(R) Celeron(R) J4115 CPU @ 1.80GHz
stepping : 1
microcode : 0x3c
cpu MHz : 1800.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 24
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_mode_based_exec tsc_scaling
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
bogomips : 3571.20
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 122
model name : Intel(R) Celeron(R) J4115 CPU @ 1.80GHz
stepping : 1
microcode : 0x3c
cpu MHz : 2377.102
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 24
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_mode_based_exec tsc_scaling
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
bogomips : 3571.20
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
can you attach the output of gcc -march=native -Q --help=target
from your laptop?
the output of gcc -march=native -Q --help=target
The following options are target specific:
-m128bit-long-double [enabled]
-m16 [disabled]
-m32 [disabled]
-m3dnow [disabled]
-m3dnowa [disabled]
-m64 [enabled]
-m80387 [enabled]
-m8bit-idiv [disabled]
-m96bit-long-double [disabled]
-mabi= sysv
-mabm [disabled]
-maccumulate-outgoing-args [enabled]
-maddress-mode= long
-madx [disabled]
-maes [enabled]
-malign-data= compat
-malign-double [disabled]
-malign-functions= 0
-malign-jumps= 0
-malign-loops= 0
-malign-stringops [enabled]
-mamx-bf16 [disabled]
-mamx-int8 [disabled]
-mamx-tile [disabled]
-mandroid [disabled]
-march= goldmont-plus
-masm= att
-mavx [disabled]
-mavx2 [disabled]
-mavx256-split-unaligned-load [disabled]
-mavx256-split-unaligned-store [disabled]
-mavx5124fmaps [disabled]
-mavx5124vnniw [disabled]
-mavx512bf16 [disabled]
-mavx512bitalg [disabled]
-mavx512bw [disabled]
-mavx512cd [disabled]
-mavx512dq [disabled]
-mavx512er [disabled]
-mavx512f [disabled]
-mavx512ifma [disabled]
-mavx512pf [disabled]
-mavx512vbmi [disabled]
-mavx512vbmi2 [disabled]
-mavx512vl [disabled]
-mavx512vnni [disabled]
-mavx512vp2intersect [disabled]
-mavx512vpopcntdq [disabled]
-mavxvnni [disabled]
-mbionic [disabled]
-mbmi [disabled]
-mbmi2 [disabled]
-mbranch-cost=<0,5> 3
-mcall-ms2sysv-xlogues [disabled]
-mcet-switch [disabled]
-mcld [disabled]
-mcldemote [disabled]
-mclflushopt [enabled]
-mclwb [disabled]
-mclzero [disabled]
-mcmodel= [default]
-mcpu=
-mcrc32 [enabled]
-mcx16 [enabled]
-mdispatch-scheduler [disabled]
-mdump-tune-features [disabled]
-menqcmd [disabled]
-mf16c [disabled]
-mfancy-math-387 [enabled]
-mfentry [disabled]
-mfentry-name=
-mfentry-section=
-mfma [disabled]
-mfma4 [disabled]
-mforce-drap [disabled]
-mforce-indirect-call [disabled]
-mfp-ret-in-387 [enabled]
-mfpmath= sse
-mfsgsbase [enabled]
-mfunction-return= keep
-mfused-madd -ffp-contract=fast
-mfxsr [enabled]
-mgeneral-regs-only [disabled]
-mgfni [disabled]
-mglibc [enabled]
-mhard-float [enabled]
-mharden-sls= none
-mhle [disabled]
-mhreset [disabled]
-miamcu [disabled]
-mieee-fp [enabled]
-mincoming-stack-boundary= 0
-mindirect-branch-cs-prefix [disabled]
-mindirect-branch-register [disabled]
-mindirect-branch= keep
-minline-all-stringops [disabled]
-minline-stringops-dynamically [disabled]
-minstrument-return= none
-mintel-syntax -masm=intel
-mkl [disabled]
-mlarge-data-threshold=<number> 65536
-mlong-double-128 [disabled]
-mlong-double-64 [disabled]
-mlong-double-80 [enabled]
-mlwp [disabled]
-mlzcnt [disabled]
-mmanual-endbr [disabled]
-mmemcpy-strategy=
-mmemset-strategy=
-mmitigate-rop [disabled]
-mmmx [enabled]
-mmovbe [enabled]
-mmovdir64b [disabled]
-mmovdiri [disabled]
-mmpx [disabled]
-mms-bitfields [disabled]
-mmusl [disabled]
-mmwait [enabled]
-mmwaitx [disabled]
-mneeded [disabled]
-mno-align-stringops [disabled]
-mno-default [disabled]
-mno-fancy-math-387 [disabled]
-mno-push-args [disabled]
-mno-red-zone [disabled]
-mno-sse4 [disabled]
-mnop-mcount [disabled]
-momit-leaf-frame-pointer [disabled]
-mpc32 [disabled]
-mpc64 [disabled]
-mpc80 [disabled]
-mpclmul [enabled]
-mpcommit [disabled]
-mpconfig [disabled]
-mpku [disabled]
-mpopcnt [enabled]
-mprefer-avx128 -mprefer-vector-width=128
-mprefer-vector-width= none
-mpreferred-stack-boundary= 0
-mprefetchwt1 [disabled]
-mprfchw [enabled]
-mptwrite [enabled]
-mpush-args [enabled]
-mrdpid [enabled]
-mrdrnd [enabled]
-mrdseed [enabled]
-mrecip [disabled]
-mrecip=
-mrecord-mcount [disabled]
-mrecord-return [disabled]
-mred-zone [enabled]
-mregparm= 6
-mrtd [disabled]
-mrtm [disabled]
-msahf [enabled]
-mserialize [disabled]
-msgx [enabled]
-msha [enabled]
-mshstk [disabled]
-mskip-rax-setup [disabled]
-msoft-float [disabled]
-msse [enabled]
-msse2 [enabled]
-msse2avx [disabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-msse4a [disabled]
-msse5 -mavx
-msseregparm [disabled]
-mssse3 [enabled]
-mstack-arg-probe [disabled]
-mstack-protector-guard-offset=
-mstack-protector-guard-reg=
-mstack-protector-guard-symbol=
-mstack-protector-guard= tls
-mstackrealign [disabled]
-mstringop-strategy= [default]
-mstv [enabled]
-mtbm [disabled]
-mtls-dialect= gnu
-mtls-direct-seg-refs [enabled]
-mtsxldtrk [disabled]
-mtune-ctrl=
-mtune= goldmont-plus
-muclibc [disabled]
-muintr [disabled]
-mvaes [disabled]
-mveclibabi= [default]
-mvect8-ret-in-mem [disabled]
-mvpclmulqdq [disabled]
-mvzeroupper [enabled]
-mwaitpkg [disabled]
-mwbnoinvd [disabled]
-mwidekl [disabled]
-mx32 [disabled]
-mxop [disabled]
-mxsave [enabled]
-mxsavec [enabled]
-mxsaveopt [enabled]
-mxsaves [enabled]
Known assembler dialects (for use with the -masm= option):
att intel
Known ABIs (for use with the -mabi= option):
ms sysv
Known code models (for use with the -mcmodel= option):
32 kernel large medium small
Valid arguments to -mfpmath=:
387 387+sse 387,sse both sse sse+387 sse,387
Known choices for mitigation against straight line speculation with -mharden-sls=:
all indirect-jmp none return
Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
keep thunk thunk-extern thunk-inline
Known choices for return instrumentation with -minstrument-return=:
call none nop5
Known data alignment choices (for use with the -malign-data= option):
abi cacheline compat
Known vectorization library ABIs (for use with the -mveclibabi= option):
acml svml
Known address mode (for use with the -maddress-mode= option):
long short
Known preferred register vector length (to use with the -mprefer-vector-width= option):
128 256 512 none
Known stack protector guard (for use with the -mstack-protector-guard= option):
global tls
Valid arguments to -mstringop-strategy=:
byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop vector_loop
Known TLS dialects (for use with the -mtls-dialect= option):
gnu gnu2
Known valid arguments for -march= option:
i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2 c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client rocketlake icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 x86-64-v2 x86-64-v3 x86-64-v4 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 generic native
Known valid arguments for -mtune= option:
generic i386 i486 pentium lakemont pentiumpro pentium4 nocona core2 nehalem sandybridge haswell bonnell silvermont goldmont goldmont-plus tremont knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake rocketlake intel geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2 znver3
Dragonfly is built with --march=core2
but I guess even newer celerons lack instructions that are present in core2.
Unfortunately, I can not say which instruction is missing. If you wish, try to run the binary with debug symbols via gdb:
https://github.com/dragonflydb/dragonfly/releases/download/v0.10.0/dragonfly-x86_64.unstripped.tar.gz
and when it crashes run disassemble
I tried to run via GDB (in a container though), on a Celeron J4105:
# gdb dragonfly-x86_64
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from dragonfly-x86_64...
(gdb) run
Starting program: /root/dragonfly-x86_64
warning: Error disabling address space randomization: Function not implemented
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (this=0x5f6fc030e60, __position="") at /usr/include/c++/9/bits/char_traits.h:372
372 /usr/include/c++/9/bits/char_traits.h: No such file or directory.
(gdb) disassemble
Dump of assembler code for function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_:
0x000055a85e082c50 <+0>: endbr64
0x000055a85e082c54 <+4>: push %rbp
0x000055a85e082c55 <+5>: mov %rsp,%rbp
0x000055a85e082c58 <+8>: push %r15
0x000055a85e082c5a <+10>: push %r14
0x000055a85e082c5c <+12>: push %r13
0x000055a85e082c5e <+14>: mov %rdi,%r13
0x000055a85e082c61 <+17>: push %r12
0x000055a85e082c63 <+19>: push %rbx
0x000055a85e082c64 <+20>: mov %rsi,%rbx
0x000055a85e082c67 <+23>: sub $0x18,%rsp
0x000055a85e082c6b <+27>: mov %rdx,-0x38(%rbp)
0x000055a85e082c6f <+31>: call 0x55a85de5f4a0 <_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.constprop.0>
0x000055a85e082c74 <+36>: mov 0x0(%r13),%r15
0x000055a85e082c78 <+40>: mov %rbx,%rcx
0x000055a85e082c7b <+43>: sub %r15,%rcx
0x000055a85e082c7e <+46>: test %rax,%rax
0x000055a85e082c81 <+49>: mov 0x8(%r13),%r12
0x000055a85e082c85 <+53>: mov -0x38(%rbp),%rdx
0x000055a85e082c89 <+57>: mov %rax,%r14
0x000055a85e082c8c <+60>: je 0x55a85e082e10 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+448>
0x000055a85e082c92 <+66>: movabs $0x3ffffffffffffff,%rax
0x000055a85e082c9c <+76>: cmp %rax,%r14
0x000055a85e082c9f <+79>: ja 0x55a85e082e1d <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+461>
0x000055a85e082ca5 <+85>: shl $0x5,%r14
0x000055a85e082ca9 <+89>: mov %r14,%rdi
0x000055a85e082cac <+92>: mov %rdx,-0x40(%rbp)
0x000055a85e082cb0 <+96>: mov %rcx,-0x38(%rbp)
0x000055a85e082cb4 <+100>: call 0x55a85e0b99b0 <_Znwm>
0x000055a85e082cb9 <+105>: mov -0x38(%rbp),%rcx
0x000055a85e082cbd <+109>: mov -0x40(%rbp),%rdx
0x000055a85e082cc1 <+113>: lea 0x20(%rax),%r8
0x000055a85e082cc5 <+117>: add %rax,%rcx
0x000055a85e082cc8 <+120>: lea 0x10(%rcx),%rsi
0x000055a85e082ccc <+124>: mov (%rdx),%rdi
0x000055a85e082ccf <+127>: mov %rsi,(%rcx)
0x000055a85e082cd2 <+130>: lea 0x10(%rdx),%rsi
0x000055a85e082cd6 <+134>: cmp %rsi,%rdi
0x000055a85e082cd9 <+137>: je 0x55a85e082df8 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+424>
0x000055a85e082cdf <+143>: mov %rdi,(%rcx)
0x000055a85e082ce2 <+146>: mov 0x10(%rdx),%rdi
0x000055a85e082ce6 <+150>: mov %rdi,0x10(%rcx)
0x000055a85e082cea <+154>: mov 0x8(%rdx),%rdi
--Type <RET> for more, q to quit, c to continue without paging--
0x000055a85e082cee <+158>: mov %rsi,(%rdx)
0x000055a85e082cf1 <+161>: mov %rdi,0x8(%rcx)
0x000055a85e082cf5 <+165>: movq $0x0,0x8(%rdx)
0x000055a85e082cfd <+173>: movb $0x0,0x10(%rdx)
0x000055a85e082d01 <+177>: cmp %r15,%rbx
0x000055a85e082d04 <+180>: je 0x55a85e082d5b <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+267>
0x000055a85e082d06 <+182>: mov %rax,%rcx
0x000055a85e082d09 <+185>: mov %r15,%rdx
0x000055a85e082d0c <+188>: jmp 0x55a85e082d30 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+224>
0x000055a85e082d0e <+190>: xchg %ax,%ax
0x000055a85e082d10 <+192>: mov %rdi,(%rcx)
0x000055a85e082d13 <+195>: mov 0x10(%rdx),%rsi
0x000055a85e082d17 <+199>: mov %rsi,0x10(%rcx)
0x000055a85e082d1b <+203>: mov 0x8(%rdx),%rsi
0x000055a85e082d1f <+207>: add $0x20,%rdx
0x000055a85e082d23 <+211>: mov %rsi,0x8(%rcx)
0x000055a85e082d27 <+215>: add $0x20,%rcx
0x000055a85e082d2b <+219>: cmp %rdx,%rbx
0x000055a85e082d2e <+222>: je 0x55a85e082d50 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+256>
0x000055a85e082d30 <+224>: lea 0x10(%rcx),%rsi
0x000055a85e082d34 <+228>: mov %rsi,(%rcx)
0x000055a85e082d37 <+231>: lea 0x10(%rdx),%rsi
0x000055a85e082d3b <+235>: mov (%rdx),%rdi
0x000055a85e082d3e <+238>: cmp %rsi,%rdi
0x000055a85e082d41 <+241>: jne 0x55a85e082d10 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+192>
0x000055a85e082d43 <+243>: vmovdqu 0x10(%rdx),%xmm0
0x000055a85e082d48 <+248>: vmovups %xmm0,0x10(%rcx)
0x000055a85e082d4d <+253>: jmp 0x55a85e082d1b <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+203>
0x000055a85e082d4f <+255>: nop
0x000055a85e082d50 <+256>: mov %rbx,%rdx
0x000055a85e082d53 <+259>: sub %r15,%rdx
0x000055a85e082d56 <+262>: lea 0x20(%rax,%rdx,1),%r8
0x000055a85e082d5b <+267>: cmp %r12,%rbx
0x000055a85e082d5e <+270>: je 0x55a85e082db6 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+358>
0x000055a85e082d60 <+272>: mov %rbx,%rdx
0x000055a85e082d63 <+275>: mov %r8,%rcx
0x000055a85e082d66 <+278>: jmp 0x55a85e082d90 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+320>
0x000055a85e082d68 <+280>: nopl 0x0(%rax,%rax,1)
0x000055a85e082d70 <+288>: mov 0x10(%rdx),%rsi
0x000055a85e082d74 <+292>: mov %rdi,(%rcx)
--Type <RET> for more, q to quit, c to continue without paging--
0x000055a85e082d77 <+295>: mov %rsi,0x10(%rcx)
0x000055a85e082d7b <+299>: mov 0x8(%rdx),%rsi
0x000055a85e082d7f <+303>: add $0x20,%rdx
0x000055a85e082d83 <+307>: mov %rsi,0x8(%rcx)
0x000055a85e082d87 <+311>: add $0x20,%rcx
0x000055a85e082d8b <+315>: cmp %rdx,%r12
0x000055a85e082d8e <+318>: je 0x55a85e082db0 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+352>
0x000055a85e082d90 <+320>: lea 0x10(%rcx),%rsi
0x000055a85e082d94 <+324>: mov (%rdx),%rdi
0x000055a85e082d97 <+327>: mov %rsi,(%rcx)
0x000055a85e082d9a <+330>: lea 0x10(%rdx),%rsi
0x000055a85e082d9e <+334>: cmp %rsi,%rdi
0x000055a85e082da1 <+337>: jne 0x55a85e082d70 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+288>
0x000055a85e082da3 <+339>: vmovdqu 0x10(%rdx),%xmm1
0x000055a85e082da8 <+344>: vmovups %xmm1,0x10(%rcx)
0x000055a85e082dad <+349>: jmp 0x55a85e082d7b <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+299>
0x000055a85e082daf <+351>: nop
0x000055a85e082db0 <+352>: sub %rbx,%r12
0x000055a85e082db3 <+355>: add %r12,%r8
0x000055a85e082db6 <+358>: test %r15,%r15
0x000055a85e082db9 <+361>: je 0x55a85e082dd3 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+387>
0x000055a85e082dbb <+363>: mov %r15,%rdi
0x000055a85e082dbe <+366>: mov %rax,-0x40(%rbp)
0x000055a85e082dc2 <+370>: mov %r8,-0x38(%rbp)
0x000055a85e082dc6 <+374>: call 0x55a85e0b93c0 <_ZdlPv>
0x000055a85e082dcb <+379>: mov -0x40(%rbp),%rax
0x000055a85e082dcf <+383>: mov -0x38(%rbp),%r8
0x000055a85e082dd3 <+387>: mov %rax,0x0(%r13)
0x000055a85e082dd7 <+391>: add %r14,%rax
0x000055a85e082dda <+394>: mov %r8,0x8(%r13)
0x000055a85e082dde <+398>: mov %rax,0x10(%r13)
0x000055a85e082de2 <+402>: add $0x18,%rsp
0x000055a85e082de6 <+406>: pop %rbx
0x000055a85e082de7 <+407>: pop %r12
0x000055a85e082de9 <+409>: pop %r13
0x000055a85e082deb <+411>: pop %r14
0x000055a85e082ded <+413>: pop %r15
0x000055a85e082def <+415>: pop %rbp
0x000055a85e082df0 <+416>: ret
0x000055a85e082df1 <+417>: nopl 0x0(%rax)
=> 0x000055a85e082df8 <+424>: vmovdqu 0x10(%rdx),%xmm2
0x000055a85e082dfd <+429>: vmovups %xmm2,0x10(%rcx)
0x000055a85e082e02 <+434>: jmp 0x55a85e082cea <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIP--Type <RET> for more, q to quit, c to continue without paging--c
S5_S7_EEDpOT_+154>
0x000055a85e082e07 <+439>: nopw 0x0(%rax,%rax,1)
0x000055a85e082e10 <+448>: mov $0x20,%r8d
0x000055a85e082e16 <+454>: xor %eax,%eax
0x000055a85e082e18 <+456>: jmp 0x55a85e082cc5 <_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_+117>
0x000055a85e082e1d <+461>: call 0x55a85de284f0 <_ZSt17__throw_bad_allocv@plt>
End of assembler dump.
After some googling, I think it's about Intel's CET.
J4105 doesn't support it: (see https://gist.github.com/kohnakagawa/fb77904fcc44fc5652ef6d338c35a718)
closing