%! TeX program = lualatex
\documentclass[../../thesis.tex]{subfiles}

\begin{document}

\chapter{Experiment Setup}\label{ch:experimentsetup}

\section{Execution Environment}
\begin{itemize}
  \item Baremetal execution in BOCHS
\end{itemize}

\subfile{04_01_wamr_modifications.tex}

\section{Wasm Host Program}
\begin{itemize}
  \item WAMR setup
  \item WAMR memory allocators
  \item Calling \code{FAIL\_MARKER}s (native functions)
\end{itemize}

\section{Experiment Types}
\begin{itemize}
  \item C only
  \item WAMR AOT
  \item WAMR interpreter
\end{itemize}

\section{Controlling What Gets Injected/Memory Isolation}
\begin{itemize}
  \item --catch-write-textsegment (does NOT prevent injections into the textsegment!)
  \item --catch-outerspace
\end{itemize}

\section{Missing FAIL\_MARKERs for AOT experiments}
\begin{itemize}
  \item AOT Addressauflösung/Def-Use chain theory
  \item Somehow caught by --catch-write-textsegment or --catch-outerspace because stuff was linked to .text?
  \item Optimization theory
        \begin{itemize}
          \item Does the target program contain the expected instructions?
          \item Does FAIL* treat the variables as not live? (volatile, fail\_stop\_trace(sum))
          \item Trying more complex programs, as -O0 always writes intermediate results to memory
          \item Swap fail\_marker\_positive and fail\_marker\_negative
        \end{itemize}
  \item Does the pruner clear those injections for some reason?
  \item Does the disassembler not disassemble the .text subsections?
  \item Is the TracingPlugin broken? (GDB -> No, but FAIL* doesn't trace register accesses)
  \item Solution: Gap in the .elf symbol space (addresses that are not covered by some symbol). FAIL needs this to disassemble the Wasm AOT code to find the register accesses. FAIL also needs to find this AOT code, so it can't be relocated -> Needs --xip
\end{itemize}

\section{Target Programs}
\begin{itemize}
  \item Toy examples
  \item TacleBench~\autocite{TACLeBench,seidlerTACLeBenchWasmConverter2026}
\end{itemize}

\end{document}
