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.

Functions

NameDescription
_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.
_d_wrun_main(argc, wargv, mainFunc) Windows-specific version for wide command-line arguments, e.g., from a wmain/wWinMain C entry point. This wide version uses the specified arguments, unlike narrow d_run_main which uses the actual (wide) process arguments instead.
gc_clrProxy() These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
gc_getProxy() These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
gc_setProxy(p) These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
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_loadLibrary(name) Loads a DLL written in D with the name 'name'.
rt_setTraceHandler(h) Overrides the default trace hander with a user-supplied version.
rt_term() Terminate use of druntime.
rt_unloadLibrary(ptr) Unloads DLL that was previously loaded by rt_loadLibrary().

Structs

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

Global variables

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

Aliases

NameTypeDescription
gcClrFn extern(C) void function() These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
gcGetFn extern(C) void* function() These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
gcSetFn extern(C) void function(void*) These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
TraceHandler object.Throwable.TraceInfo function(void*) Trace handler

Authors

Walter Bright, Sean Kelly

License

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