Illegal Instruction

David Nadlinger code at klickverbot.at
Tue Nov 7 19:58:19 UTC 2017


On 7 Nov 2017, at 18:06, Russel Winder wrote:
>    0x0000555555600c8d <+1165>:	callq  0x5555555ec440 
> <_D3std7variant16VariantException6__ctorMFC8TypeInfoC8TypeInfoZC3std7variant16VariantException at plt>
>    0x0000555555600c92 <+1170>:	mov    %rax,%rdi
>    0x0000555555600c95 <+1173>:	callq  0x5555555ec180 
> <_d_throw_exception at plt>
> => 0x0000555555600c9a <+1178>:	ud2
>    0x0000555555600c9c <+1180>:	mov    %rax,%rbx

Interesting… For all the world, this looks like _d_throw_exception in 
fact returned, which it never should (we put an unreachable instruction 
there, which probably gets translated into ud2).

You could try using GCC's reverse debugging support to step backwards 
through the code to figure out whether that's really the case, and if 
so, where unwinding goes wrong.

  — David



More information about the digitalmars-d-ldc mailing list