tags:

views:

65

answers:

2

Hi,

I have an application (ABC) that I developed and it as a windows application (.exe). It is by itself quite a big application referring a lot of dll's.

However, now there is a requirement that demands that this application(ABC) be a part of an even larger application (XYZ). Hence, I had to change the project type of "ABC" from being a windows application to a class library, and by changing a few lines of code.

My problem is that, ever since I started using ABC as part of XYZ, the application started hanging if I dint perform any operation on it for 10 to 15 mins... I do not have any problems while running it as a separate application.

Any reasons why this might occur?

Any suggestions would be really appreciated...

Thanks, Ram

+2  A: 

Launch XYZ in the debugger. Wait for the app to hang, pause the debugger, and have a look at what each of the threads in your process are busy with.

It might also help to turn on "break on all exceptions"

Rob Fonseca-Ensor
Thanks Rob... I shall try that...But one thing : >>have a look at what each of the threads in your process are busy with <<Could you pls tell me how I can do that?
Ram
Debug -> Windows -> Threads
sixlettervariables
Hi,I tried leaving the app in the debugger... But while it is in debug mode (ie, when i run it in VS), the hang never happens.. However, if I install the app in the same machine that I tried debugging, the application hangs. So here's what I did. I installed the application.Waited for it to hang.Attached my debugger to the hung application.Opened the Threads window and turned on Break.I could see several threads listed.The execution arrow pointed at one thread.Does that mean that this thread is the one that is causing the hang?Or have I proceeded in the wrong direction.Pls advice
Ram
Hey good thinking. No - VS can't tell you which of the threads is at fault. Go through them all and see what bits of code they're running. The ones that are running ABC or XYZ code are probably the culprits
Rob Fonseca-Ensor
A: 

You can also use remote debugging to debug the application whilst it is running on the user's machine. From your dev machine, you can attach to the process on the user's machine, and then do a debug break to see what the threads are doing.

ShellShock
Thanks ShellShock.. I shall try this out...
Ram