0

The project my team has been working on has reached a point where we need to deploy it to computers without the development environment (Visual Studio 2005) installed on them. We fixed the dependency issues we had at first, but we're still having issues.

Now, once the installer is finished, our project gets stuck somewhere before entering WinMain. It only takes up 13MB of RAM, but takes up 50% of the cpu cycles.

Are there any suggestions as to how debug this problem?

Edit: Clarification - this is a C++ project.

4
  • no exception or error is thrown? In code, what are you doing with exceptions? Anything in Event Viewer? When you say, before entering winmain....you mean your main form? Commented Jun 8, 2009 at 19:47
  • Our program is fully-code based - we don't use forms. WinMain is where everything gets set up, including windows creation. No exceptions or errors, just no response to our code. Commented Jun 8, 2009 at 19:51
  • I should probably clarify that this is a C++ project. Commented Jun 8, 2009 at 19:51
  • Nothing in Event Viewer. Commented Jun 8, 2009 at 19:52

3 Answers 3

2

Is it possible the hang occurs while some global variable is initialized? That happens before WinMain, and from a global variable's constructor any code could be run. Also, take a look at the busy thread's stack using Process Explorer (make sure you deploy the PBD in order to get a meaningful stack trace). The stack trace should make it obvious where is that thread hanging.

Sign up to request clarification or add additional context in comments.

Comments

0

You might have to resort to old-time debugging - outputting print statements to a console that refer to what part of the application has been run successfully. Without the IDE installed on the target machine, there really aren't many options for debugging.

3 Comments

We tried. The program's never entering WinMain, so we have no way to see that.
any objects declared globally? any constructors being executed?
of course there're options for debugging! windows debugger is lightweight and can practically be deployed w/o installation. now, as already suggested, take a snapshot of the busy thread (that'd be the main thread) with process explorer and post it here.
0

If your running vista or windows 7 you can create a memory dump from task manager (right click and select create dump file) and then transfer that to your dev computer, load the symbols and it will show you where the program was at that time.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.