It would be nice if the debug console had a little help page of itself, to describe the syntax to issue commands (also the nested ones), and a disclaimer that usage can be dangerous.

Maybe add a debug-console-only command like help that shows how to use nested commands and potentially other advanced tricks, and add 'for more information on using this console type XXX'.

See also:
- https://github.com/bitcoin/bitcoin/pull/7783#issuecomment-248274853
- https://github.com/bitcoin/bitcoin/issues/8544#issuecomment-240970925
- #8912 Console command paths cannot be specified correctly with backslashes
{
public:
    ~QtRPCTimerInterface() {}
    const char *Name() { return "Qt"; }
    RPCTimerBase* NewTimer(std::function<void(void)>& func, int64_t millis)
    {
        return new QtRPCTimerBase(func, millis);
    }
};
#include "rpcconsole.moc"
/**
 * Split shell command line into a list of arguments and optionally execute the command(s).
 * Aims to emulate \c bash and friends.
 *
 * - Command nesting is possible with parenthesis; for example: validateaddress(getnewaddress())
 * - Arguments are delimited with whitespace or comma
 * - Extra whitespace at the beginning and end and between arguments will be ignored
 * - Text can be "double" or 'single' quoted
 * - The backslash \c \ is used as escape character
 *   - Outside quotes, any character can be escaped
 *   - Within double quotes, only escape \c " and backslashes before a \c " or another backslash
 *   - Within single quotes, no escaping is possible and no special interpretation takes place
 *
 * @param[out]   result      stringified Result from the executed command(chain)
 * @param[in]    strCommand  Command line to split
 * @param[in]    fExecute    set true if you want the command to be executed
 * @param[out]   pstrFilteredOut  Command line, filtered to remove any sensitive data
 */
bool RPCConsole::RPCParseCommandLine(std::string &strResult, const std::string &strCommand, const bool fExecute, std::string * const pstrFilteredOut)