GC profiling upon exit()
Ali Çehreli via Digitalmars-d
digitalmars-d at puremagic.com
Thu Aug 11 14:34:50 PDT 2016
On 08/11/2016 02:56 AM, Jonathan M Davis via Digitalmars-d wrote:
> On Thursday, August 11, 2016 02:17:06 Ali Çehreli via Digitalmars-d
wrote:
>> I've noticed that GC profiling[1] is not provided if the application
>> exit()s as opposed to returns. Is that intended? Would it be possible to
>> print it still?
>>
>> Related, stdout may not be the best place for that information: ;)
>>
>> https://issues.dlang.org/show_bug.cgi?id=15602
>>
>> Ali
>>
>> [1] https://dlang.org/spec/garbage.html#gc_config
>
> Well, you could register stuff with atexit() so that it runs when
exit() is
> called, but calling exit() isn't much better than hitting assert(0)
or using
> ctrl-c. exit() doesn't shut things down even vaguely cleanly.
Agreed that assert(0) is fatal but Ctrl-C is just a signal that can be
handled cleanly. exit() is not necessarily an error return. It just
means that the application does not care about regular cleanup.
> So, you
> _might_ be able to get something thanks to atexit(), but I'm not sure how
> much you can really do given that your program has basically just
been shot
> in the head.
The good thing is that the application may be calling exit() itself,
where it could have made a call to get the profile information. The main
issue here is that the output of GC profile information is hardwired to
GC destruction (and stdout).
I've opened this enhancement request:
https://issues.dlang.org/show_bug.cgi?id=16377
Ali
More information about the Digitalmars-d
mailing list