ubuntu@ubuntu:~/paper/brunsli/build$ lldb-7 ./cbrunsli world.topo.bathy.200407.3x21600x10800.jpg
(lldb) target create "./cbrunsli"
Current executable set to './cbrunsli' (x86_64).
(lldb) settings set -- target.run-args "world.topo.bathy.200407.3x21600x10800.jpg"
(lldb) r
Process 16101 launched: '/home/code/brunsli/build/cbrunsli' (x86_64)
Process 16101 stopped
* thread #1, name = 'cbrunsli', stop reason = signal SIGILL: illegal instruction operand
frame #0: 0x0000000000455c90 cbrunsli`std::_Bit_iterator::operator*() const + 32
cbrunsli`std::_Bit_iterator::operator*:
-> 0x455c90 <+32>: shlxq %rdi, %rdx, %rdx
0x455c95 <+37>: leaq -0x10(%rbp), %rdi
0x455c99 <+41>: callq 0x455d30 ; std::_Bit_reference::_Bit_reference(unsigned long*, unsigned long)
0x455c9e <+46>: movq -0x10(%rbp), %rax
(lldb) bt
* thread #1, name = 'cbrunsli', stop reason = signal SIGILL: illegal instruction operand
* frame #0: 0x0000000000455c90 cbrunsli`std::_Bit_iterator::operator*() const + 32
frame #1: 0x00000000004445a6 cbrunsli`std::vector<bool, std::allocator<bool> >::operator[](unsigned long) + 70
frame #2: 0x0000000000459bea cbrunsli`brunsli::(anonymous namespace)::ProcessSOF(unsigned char const*, unsigned long, brunsli::JpegReadMode, unsigned long*, brunsli::JPEGData*) + 1130
frame #3: 0x00000000004592df cbrunsli`brunsli::ReadJpeg(unsigned char const*, unsigned long, brunsli::JpegReadMode, brunsli::JPEGData*) + 1151
frame #4: 0x0000000000433b07 cbrunsli`ProcessFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 151
frame #5: 0x0000000000433d53 cbrunsli`main + 195
frame #6: 0x00007ffff718c830 libc.so.6`__libc_start_main(main=(cbrunsli`main), argc=2, argv=0x00007fffffffd388, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffd378) at libc-start.c:291
frame #7: 0x0000000000433599 cbrunsli`_start + 41
(lldb) di
cbrunsli`std::_Bit_iterator::operator*:
0x455c70 <+0>: pushq %rbp
0x455c71 <+1>: movq %rsp, %rbp
0x455c74 <+4>: subq $0x20, %rsp
0x455c78 <+8>: movq %rdi, -0x18(%rbp)
0x455c7c <+12>: movq -0x18(%rbp), %rdi
0x455c80 <+16>: movq (%rdi), %rsi
0x455c83 <+19>: movb 0x8(%rdi), %al
0x455c86 <+22>: movb %al, %dil
0x455c89 <+25>: movl $0x1, %ecx
0x455c8e <+30>: movl %ecx, %edx
-> 0x455c90 <+32>: shlxq %rdi, %rdx, %rdx
0x455c95 <+37>: leaq -0x10(%rbp), %rdi
0x455c99 <+41>: callq 0x455d30 ; std::_Bit_reference::_Bit_reference(unsigned long*, unsigned long)
0x455c9e <+46>: movq -0x10(%rbp), %rax
0x455ca2 <+50>: movq -0x8(%rbp), %rdx
0x455ca6 <+54>: addq $0x20, %rsp
0x455caa <+58>: popq %rbp
0x455cab <+59>: retq
(lldb) up
frame #1: 0x00000000004445a6 cbrunsli`std::vector<bool, std::allocator<bool> >::operator[](unsigned long) + 70
cbrunsli`std::vector<bool, std::allocator<bool> >::operator[]:
0x4445a6 <+70>: movq %rax, -0x10(%rbp)
0x4445aa <+74>: movq %rdx, -0x8(%rbp)
0x4445ae <+78>: movq -0x10(%rbp), %rax
0x4445b2 <+82>: movq -0x8(%rbp), %rdx
(lldb) up
frame #2: 0x0000000000459bea cbrunsli`brunsli::(anonymous namespace)::ProcessSOF(unsigned char const*, unsigned long, brunsli::JpegReadMode, unsigned long*, brunsli::JPEGData*) + 1130
cbrunsli`brunsli::(anonymous namespace)::ProcessSOF:
0x459bea <+1130>: movq %rax, -0x98(%rbp)
0x459bf1 <+1137>: movq %rdx, -0x90(%rbp)
0x459bf8 <+1144>: leaq -0x98(%rbp), %rdi
0x459bff <+1151>: callq 0x455d60 ; std::_Bit_reference::operator bool() const
clang-7 -v
clang version 7.0.1-svn348686-1~exp1~20181221231927.53 (branches/release_70)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64