Hi.
I am working on a DynamoRIO client that records an re-playable execution trace. I noticed when instrumenting a 32 bit C program compiled with MSVC (cl.exe) on Windows 10, that the recorded execution trace has a hole after a direct call like the one ending this basic block below:
```
interp: start_pc = 0x7763e424
0x7763e424 6a 20 push 0x20
0x7763e426 68 08 c4 6f 77 push 0x776fc408
0x7763e42b e8 b4 a0 03 00 call 0x776784e4
NOT following direct call from 0x7763e42b to 0x776784e4
```
My execution trace here has the address of the call (`0x7763e42b`) and then the address right after it (`0x7763e430`), but nothing in between, so my emulator complains on after falling the call to `0x776784e4` that is has left my execution trace.
Using DynamoRIO's symquery, it looks like this target function address, `0x776784e4`, is in `ntdll.dll` and is `_SEH_prolog4+0x0`.
I couldn't find much documentation on that log message 'NOT following direct call from ...', and I don't know enough of DynamoRIO's internals to understand the context around that `BBPRINT` statement.
Could someone help me understand why this direct call is not being followed?
I would prefer recording every instruction executed in the trace as faithfully as possible, would it be feasible for me to try to follow and record this call? I think it would probably be acceptable to skip some functions like this if few special functions are not followed.