[lldb/Reproducers] Change the way we instrument void* arguments
authorJonas Devlieghere <jonas@devlieghere.com>
Wed, 5 Feb 2020 03:00:10 +0000 (19:00 -0800)
committerJonas Devlieghere <jonas@devlieghere.com>
Wed, 5 Feb 2020 03:05:13 +0000 (19:05 -0800)
commitb453caf1112f0e89eddcd03aa667368fab6d13d6
tree1e11bb16e552be3304ad5ec5e19d6d7718126e00
parenta1c338d70b9be7b5c6f9e16a325d692e8f439172
[lldb/Reproducers] Change the way we instrument void* arguments

The reproducer instrumentation cannot automatically serialize and
deserialize void* arguments. Currently we deal with this by explicitly
preventing these methods from being instrumented. This has the undesired
side effect of breaking replay when that method returns a value later
used by another SB API call.

The solution is to change our approach and instrument these methods.
Instead of using the DUMMY macro, we just make (de)serialization of the
void pointer a NOOP and always return a nullptr.
lldb/include/lldb/Utility/ReproducerInstrumentation.h
lldb/source/API/SBTarget.cpp
lldb/source/Utility/ReproducerInstrumentation.cpp
lldb/tools/lldb-instr/Instrument.cpp