Make args_env::argv/envp a simple vector of strings without a terminating nullptr.
Move vector<string> construction out to `record` function.
Move args_env creation and writing into TraceOfstream::create.
Store args_env state directly in TraceStream and expose it via getters.
Remove global 'ae' and stop passing args_env to Task::spawn; it can get the data directly from the trace now.
Move reading of args_env data into TraceIfstream::open.
Move CharArray to its own StringArrayToCharArray class with header file.
Remove args_env.
Use TraceFrame::Time in a few places.
Embed TraceOfstream instance directly in RecordSession.

shared_ptr is not needed here.
Make RecordSession include a TraceIfstream member directly.

shared_ptr is not required here.