View source code
Display the source code in rt/dmain2.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module rt.dmain2

Contains druntime startup and shutdown routines.


_d_run_main(argc, argv, mainFunc) Sets up the D char[][] command-line args, initializes druntime, runs embedded unittests and then runs the given D main() function, optionally catching and printing any unhandled exceptions.
_d_traceContext(ptr) This function will be called when an exception is constructed. The user-supplied trace handler will be called if one has been supplied, otherwise no trace will be generated.
rt_getTraceHandler() Return the current trace handler
rt_init() Initialize druntime. If a C program wishes to call D code, and there's no D main(), then it must call rt_init() and rt_term().
rt_setTraceHandler(h, d) Overrides the default trace hander with a user-supplied version.
rt_term() Terminate use of druntime.


CArgs Provide out-of-band access to the original C argc/argv passed to this program via main(argc,argv).

Global variables

_initCount shared(ulong) Keep track of how often rt_init/rt_term were called.


TraceHandler object.Throwable.TraceInfo function(void*) Trace handler


Walter Bright, Sean Kelly


Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)