Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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 a local clone.

# rt.dmain2

Contains druntime startup and shutdown routines.
License:
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Authors:
Walter Bright, Sean Kelly

Source rt/dmain2.d

void* `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.
void `gc_setProxy`(void* `p`);
  These are a temporary means of providing a GC hook for DLL use. They may be replaced with some other similar functionality later.
void `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.
alias `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.
alias `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.
alias `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.
shared size_t `_initCount`;
  Keep track of how often rt_init/rt_term were called.
int `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().
int `rt_term`();
  Terminate use of druntime.
alias `TraceHandler` = TraceInfo function(void* ptr);
  Trace handler
void `rt_setTraceHandler`(TraceHandler `h`);
  Overrides the default trace hander with a user-supplied version.
  Parameters:

  TraceHandler `h` | The new trace handler. Set to null to use the default handler.

TraceHandler `rt_getTraceHandler`();
  Return the current trace handler
Throwable.TraceInfo `_d_traceContext`(void* `ptr` = null);
  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.
  Parameters:

  void* `ptr` | A pointer to the location from which to generate the trace, or null if the trace should be generated from within the trace handler itself.

  Returns:
  An object describing the current calling context or null if no handler is supplied.
struct `CArgs`;
  Provide out-of-band access to the original C argc/argv passed to this program via main(argc,argv).
int `_d_run_main`(int `argc`, char** `argv`, MainFunc `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.

Copyright © 1999-2020 by the D Language Foundation | Page generated by Ddoc on Mon Mar 9 06:16:38 2020