Question

I run my program in DebugMode and then quit it by closing the main form.

In the output window I can see the following message:

Uninit : Still Alive 1The program "[1432] App1.exe: Managed (v4.0.30319)" was ended with code 0 (0x0).

I wonder what the "Uninit : Still Alive 1" means.

Does anybody know??? I am always really scared of something unexpected occuring at some point of time, and the message "Still Alive" does not really sound promising to me.

Thank you for the help!

Was it helpful?

Solution

It is a diagnostic message that was generated with OutputDebugString(). It is present in one of the DLLs that you have a dependency on. The exact meaning requires interpretation, but "Uninit" is short for "Uninitialize", the kind of thing that happens when a DLL gets unloaded. And "Still Alive 1" would probably mean that the programmer of the DLL is miffed about you not properly shutting down his component before you jerked the floor mat.

The message is missing a line-break ("\n"), a pretty standard mistake that programmers make when they use OutputDebugString.

Two basic ways to find the DLL that does this. First one is to turn on unmanaged debugging with Project + Properties, Debug tab, tick the "Enable native code debugging" checkbox. The DLL unload notification should be close to the diagnostic message.

More reliable is using SysInternals' Process Explorer. Select your process and press Ctrl+D to list the DLLs it has loaded. Given the quality of the message, you can probably skip the ones that have a Microsoft copyright. Right-click the DLLs one-by-one and look at the "Strings" tab to see the strings inside the DLL. Once you find it, you should know who owns that code from the DLL name. Ask them how to shut down properly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top