I have a deadlock with one of the clients using my software. Of the approximately 40 copies of the product sold (an application programmed in .NET 2.0 using VB.NET 2005), about 2 do not respond to 1 core of dual-core processors that are 100% stuck (the program uses only 1 core)
The most logical guess is an infinite loop that causes this behavior, but it's thousands of lines of code with many, many loops. That is all I have; Now, how do you suggest me approach debugging this problem?
EDIT: Basically, the software is responsible for calculating the amount of credit spent using other devices such as PCs, etc. This is a Cybercafe management program and is interrupted intermittently, that is, it subtracts a loan when it fails. It also does other things in the background, for example, checks to see if it is time to back up the database, including.
EDIT: Solvable. This was the most unlikely problem. The access database mechanism that I used as the DBMS is actually part of my application, which is problematic. In one of the tables it is difficult to work with a row - JUST ONE FRIGGIN ROW. I cannot delete it or otherwise add the record associated with this row in any other table; Even MS Access 2007 makes the processor work up to 100% when I try to work with this line!
A simple "Compact and Repair" command fixed everything. I think I will call this command every time my application starts. This will prevent a recurrence of this event.
Thanks to WinDbg, I could find where the problem is. I recommend everyone to learn how to use it, because it is a real-time screensaver.