vte is capable of starting a sub-process running, say, bash. What's instead needed is for vte to request that frysk's core start a sub-process - such a process will have tracing enabled so will be debuggable from the word go. Note that the existing create-child code in frysk's core already takes stdin/stdout/stderr String parameters (presumably here they would be supplied with the path to the vte's pty's tty) and wires up the new process to them when they are supplied; of course this may not be sufficient.