Caches begin

This commit is contained in:
2022-05-21 19:59:44 +02:00
parent 0c166fce8d
commit 696b2b05d2
6 changed files with 191 additions and 1 deletions

View File

@@ -11,7 +11,7 @@ It is mainly based on on the chapter \textit{DynamoRIO} and \textit{Code Cache}
This is achieved through the injection of additional instructions into the instruction trace of the target application.
Debuggers on the other hand, use special breakpoint instructions (e.g. INT3 on x86 or BKPT on ARM) that get injected at specific places in the code, raising a debug exception when reaching it.
At those exceptions a context switch to the operating system kernel will be performed, however, those context switches result in a significant performance penalty as the processor state has to be saved and restored afterwards. (TODO irgendwie literatur referenz hier)
At those exceptions a context switch to the operating system kernel will be performed, however, those context switches result in a significant performance penalty as the processor state has to be saved and restored afterwards.
Because the instrumentation tool runs in the same process as the application, it is important that it operates transparently, meaning that it will not affect the application behavior in unintended ways.
This is a special challenge as the dynamic instrumentation is not allowed to use the same memory routines or input/output buffering as the target application \cite{Bruening2003}.