Hello Karsten, I tried to collect some more information for the maintainer and could reproduce this (or nearly) the same SIGILL with a qemu VM limited to a pentium class CPU.
The instruction in question might these below: 0xb78816bb <+75>: movd 0x4(%esi),%xmm2 (here I received the SIGILL) 0xb78816fb <+139>: pminud %xmm2,%xmm3 (thats from your backtrace the similar address offset 0x...6fb) Both access a register xmm2/xmm3 which seems to be "just" available on CPUs having the SSE extension. Therefore it would be interesting to know with which CPU you are getting this SIGILL (e.g. 'lscpu' or 'cat /proc/cpuinfo'). Otherwise finch seems not to depend directly from intel-media-va-driver, and from the package description if your CPU is older than "Broadwell", then you might even not benefit from this package. Therefore a workaround might be to uninstall intel-media-va-driver if no other dependencies require it? Kind regards, Bernhard
# Bullseye/testing i386 qemu VM 2020-10-26 (with -cpu pentium) apt update apt dist-upgrade apt install systemd-coredump mc htop psmisc net-tools strace gdb intel-media-va-driver intel-media-va-driver-dbgsym coreutils-dbgsym gdb -q set width 0 set pagination off file /bin/ls b main run #b call_init call __dlopen("/usr/lib/i386-linux-gnu/dri/iHD_drv_video.so", 4354) bt disassemble 0xb78816b9 benutzer@debian:~$ gdb -q (gdb) set width 0 (gdb) set pagination off (gdb) file /bin/ls Reading symbols from /bin/ls... Reading symbols from /usr/lib/debug/.build-id/00/695414aa5413c8667e62c2362d119cb233a504.debug... (gdb) b main Breakpoint 1 at 0x2770: file src/ls.c, line 1622. (gdb) run Starting program: /bin/ls [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". Breakpoint 1, main (argc=1, argv=0xbffff744) at src/ls.c:1622 1622 src/ls.c: Datei oder Verzeichnis nicht gefunden. (gdb) call __dlopen("/usr/lib/i386-linux-gnu/dri/iHD_drv_video.so", 4354) Program received signal SIGILL, Illegal instruction. std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__str=..., this=0x42fc50) at /usr/include/c++/10/bits/basic_string.h:569 569 /usr/include/c++/10/bits/basic_string.h: Datei oder Verzeichnis nicht gefunden. The program being debugged was signaled while in a function called from GDB. GDB remains in the frame where the signal was received. To change this behavior use "set unwindonsignal on". Evaluation of the expression containing the function (__dlopen) will be abandoned. When the function is done executing, GDB will silently stop. (gdb) bt #0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__str=..., this=0x42fc50) at /usr/include/c++/10/bits/basic_string.h:569 #1 std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*), true> (__p=..., this=0x42fc50) at /usr/include/c++/10/bits/stl_pair.h:373 #2 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>, __p=0x42fc50) at /usr/include/c++/10/ext/new_allocator.h:150 #3 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (__p=0x42fc50, this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>) at /usr/include/c++/10/ext/new_allocator.h:148 #4 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (__p=0x42fc50, __a=...) at /usr/include/c++/10/bits/alloc_traits.h:512 #5 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (__node=0x42fc40, this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>) at /usr/include/c++/10/bits/stl_tree.h:618 #6 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>) at /usr/include/c++/10/bits/stl_tree.h:635 #7 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>) at /usr/include/c++/10/bits/stl_tree.h:2414 #8 0xb7881981 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*), std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > (__x=..., this=0xb7ceb8b0 <MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::GetCreators[abi:cxx11]()::creators>) at /usr/include/c++/10/bits/stl_map.h:816 #9 MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR>::RegisterCodec<DdiDecodeAVC> (key="VIDEO_DEC_H264") at ./media_driver/linux/common/ddi/media_ddi_factory.h:67 #10 0xb75cf006 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /usr/include/c++/10/bits/char_traits.h:322 #11 _GLOBAL__sub_I_media_ddi_decode_avc.cpp(void) () at ./media_driver/linux/common/codec/ddi/media_ddi_decode_avc.cpp:904 #12 0xb7fe5e9c in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0xbffff744, env=0xbffff74c) at dl-init.c:72 #13 0xb7fe5fa2 in call_init (env=0xbffff74c, argv=0xbffff744, argc=1, l=<optimized out>) at dl-init.c:30 #14 _dl_init (main_map=<optimized out>, argc=1, argv=0xbffff744, env=0xbffff74c) at dl-init.c:119 #15 0xb7fe92a7 in call_dl_init (closure=0xbffff310) at dl-open.c:469 #16 0xb7eed524 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at dl-error-skeleton.c:182 #17 0xb7fea08d in dl_open_worker (a=<optimized out>) at dl-open.c:758 #18 0xb7eed4c9 in __GI__dl_catch_exception (exception=0xbffff440, operate=0xb7fe9990 <dl_open_worker>, args=0xbffff44c) at dl-error-skeleton.c:208 #19 0xb7fe95e6 in _dl_open (file=0xb7cedd20 "/usr/lib/i386-linux-gnu/dri/iHD_drv_video.so", mode=-2147479294, caller_dlopen=0xbffff68f, nsid=<optimized out>, argc=1, argv=0xbffff744, env=0xbffff74c) at dl-open.c:837 #20 0xb7d122c8 in dlopen_doit (a=0xbffff64c) at dlopen.c:66 #21 0xb7eed4c9 in __GI__dl_catch_exception (exception=0xbffff5e0, operate=0xb7d12250 <dlopen_doit>, args=0xbffff64c) at dl-error-skeleton.c:208 #22 0xb7eed590 in __GI__dl_catch_error (objname=0x42836c, errstring=0x428370, mallocedp=0x428368, operate=0xb7d12250 <dlopen_doit>, args=0xbffff64c) at dl-error-skeleton.c:227 #23 0xb7d12b11 in _dlerror_run (operate=0xb7d12250 <dlopen_doit>, args=0xbffff64c) at dlerror.c:170 #24 0xb7d12364 in __dlopen (file=0xb7cedd20 "/usr/lib/i386-linux-gnu/dri/iHD_drv_video.so", mode=4354) at dlopen.c:87 #25 <function called from gdb> #26 main (argc=1, argv=0xbffff744) at src/ls.c:1622 (gdb) disassemble Dump of assembler code for function std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&): 0xb7881670 <+0>: push %ebp 0xb7881671 <+1>: mov %esp,%ebp 0xb7881673 <+3>: push %edi 0xb7881674 <+4>: push %esi 0xb7881675 <+5>: push %ebx 0xb7881676 <+6>: call 0xb75d2580 <__x86.get_pc_thunk.bx> 0xb788167b <+11>: add $0x45e441,%ebx 0xb7881681 <+17>: sub $0x38,%esp 0xb7881684 <+20>: mov 0x10(%ebp),%esi 0xb7881687 <+23>: push $0x2c 0xb7881689 <+25>: call 0xb75c0070 <_Znwj@plt> 0xb788168e <+30>: add $0x10,%esp 0xb7881691 <+33>: lea 0x18(%eax),%edx 0xb7881694 <+36>: mov %eax,-0x24(%ebp) 0xb7881697 <+39>: mov %edx,0x10(%eax) 0xb788169a <+42>: lea 0x8(%esi),%eax 0xb788169d <+45>: mov %edx,-0x2c(%ebp) 0xb78816a0 <+48>: mov (%esi),%edx 0xb78816a2 <+50>: cmp %eax,%edx 0xb78816a4 <+52>: je 0xb7881868 <std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&)+504> 0xb78816aa <+58>: mov -0x24(%ebp),%edi 0xb78816ad <+61>: mov %edx,0x10(%edi) 0xb78816b0 <+64>: mov 0x8(%esi),%edx 0xb78816b3 <+67>: mov %edx,0x18(%edi) 0xb78816b6 <+70>: mov -0x24(%ebp),%edx 0xb78816b9 <+73>: mov %eax,(%esi) => 0xb78816bb <+75>: movd 0x4(%esi),%xmm2 0xb78816c0 <+80>: mov 0x18(%esi),%eax 0xb78816c3 <+83>: movl $0x0,0x4(%esi) 0xb78816ca <+90>: movb $0x0,0x8(%esi) 0xb78816ce <+94>: movd %xmm2,0x14(%edx) 0xb78816d3 <+99>: mov %eax,0x28(%edx) 0xb78816d6 <+102>: mov 0xc(%ebp),%eax 0xb78816d9 <+105>: mov 0x8(%eax),%edi 0xb78816dc <+108>: add $0x4,%eax 0xb78816df <+111>: mov %eax,-0x28(%ebp) 0xb78816e2 <+114>: test %edi,%edi 0xb78816e4 <+116>: je 0xb7881838 <std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&)+456> 0xb78816ea <+122>: mov 0x10(%edx),%esi 0xb78816ed <+125>: jmp 0xb78816f2 <std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&)+130> 0xb78816ef <+127>: nop 0xb78816f0 <+128>: mov %edx,%edi 0xb78816f2 <+130>: movd 0x14(%edi),%xmm0 0xb78816f7 <+135>: movdqa %xmm0,%xmm3 0xb78816fb <+139>: pminud %xmm2,%xmm3 0xb7881700 <+144>: movd %xmm3,%eax 0xb7881704 <+148>: test %eax,%eax 0xb7881706 <+150>: je 0xb7881730 <std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&)+192> 0xb7881708 <+152>: sub $0x4,%esp 0xb788170b <+155>: movd %xmm2,-0x20(%ebp) 0xb7881710 <+160>: push %eax 0xb7881711 <+161>: pushl 0x10(%edi) 0xb7881714 <+164>: push %esi 0xb7881715 <+165>: movd %xmm0,-0x1c(%ebp) 0xb788171a <+170>: call 0xb75c0650 <memcmp@plt> ... 0xb78818e3 <+627>: xor %edi,%edi 0xb78818e5 <+629>: jmp 0xb78817a2 <std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DdiMediaDecode* (*)(DDI_DECODE_CONFIG_ATTR*)>&&)+306> End of assembler dump. (gdb) print $xmm2 $1 = void (gdb) print/x $xmm2 $2 = 0x0 (gdb) print/x $esi $3 = 0xbffff090 (gdb) print/x $esi + 0x4 $4 = 0xbffff094 (gdb) x/1xw 0xbffff094 0xbffff094: 0x0000000e # If breaking at call_init and detaching: [ 765.161032] traps: ls[1448] trap invalid opcode ip:b78816bb sp:bffff010 error:0 in iHD_drv_video.so[b75c0000+3c2000] # Register xmm2 seems to be part of SSE: https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1 https://wiki.debian.org/SupportedArchitectures https://wiki.debian.org/i386 https://www.debian.org/releases/buster/i386/ch02s01.en.html#idm272 https://www.debian.org/releases/bullseye/i386/ch02s01.en.html#idm273