Trying to use "-debug" to diagnose where an errant instruction is being called from, but on OS-X I'm getting an error saying that the version of "pin" bundled with SDE does not support the "-appdebug_lldb_options" option.
$ ~/Downloads/sde-external-8.35.0-2019-03-11-mac/sde64 -nhm -- ./point_geometry
TID 0 SDE-ERROR: Executed instruction not valid for specified chip (NEHALEM): 0x7fff5aa69d2d: vmovups xmm1, xmmword ptr [rsi+rdx*1-0x10]
Image: /usr/lib/system/libsystem_platform.dylib+0x1d2d (in multi-region image, region# 0)
Instruction bytes are: c5 f8 10 4c 16 f0
$ ~/Downloads/sde-external-8.35.0-2019-03-11-mac/sde64 -debug -nhm -- ./point_geometry
E: unknown option "-appdebug_lldb_options"
Copyright (c) 2003-2019, Intel Corporation. All rights reserved.
Usage: pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>
Use -help for a description of options
Since you are internal, you can contact the development team directly. If you don't know how, contact me.
That said, you can use debugtrace probably: -debugtrace -dt-call -dt-flush -dt-symbols
and if the output is long, -dt-circular-buffer 10000
(See -long-help output)
I am having a similar issue on macOS Catalina:
./sde -pnr -- ~/my_exe TID 0 SDE-ERROR: Executed instruction not valid for specified chip (PENRYN): 0x7fff6eb2794d: vmovups xmm1, xmmword ptr [rsi+rdx*1-0x10] Image: /usr/lib/system/libsystem_platform.dylib+0x94d (in multi-region image, region# 0) Function: __platform_memmove$VARIANT$Haswell Instruction bytes are: c5 f8 10 4c 16 f0
It seems that macOS frameworks are not using the CPUID exposed by sde to choose which version of the version to use.
I could use "-chip_check_die 0" but this will emit TONS of warning as memmove and similar functions are use everywhere. Is there a way to suppress some libs ?