Jump to content


 


Register a free account to unlock additional features at BleepingComputer.com
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.


Click here to Register a free account now! or read our Welcome Guide to learn how to use this site.

Photo

Windows 7 X64 application hang


  • Please log in to reply
1 reply to this topic

#1 AndreasNHagen

AndreasNHagen

  • Members
  • 25 posts
  • OFFLINE
  •  
  • Local time:02:49 AM

Posted 06 May 2014 - 04:08 AM

Hi Guys,

Any idea why our inhouse developed app hangs when being used?

 

Single user 32bit app installed on one machine, running Windows 7 X64, our app was recently copied across from a 32bit Windows XP legacy computer, the application does not use the registry (but ini files) and works most of the time, but intermittantly hangs.  There is no consistent cause to the program failing.  When the app crashes, the rest of Windows works no problem, any tips how to analyse this further?

 

Thanks in advance!
 

Log Name:      Application
Source:        Application Hang
Date:          6/05/2014 1:05:44 p.m.
Event ID:      1002
Task Category: (101)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      Office-1
Description:
The program XXX.exe version 6.0.1.86 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
 Process ID: 1044
 Start Time: 01cf68bcc5c44fc8
 Termination Time: 20
 Application Path: C:\XXXXXXX\XXXWIN\XXX.exe
 Report Id: 86a52d05-d4ba-11e3-853e-e03f4984a912

Event Xml:
<Event xmlns=
"http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Hang" />
    <EventID Qualifiers="0">1002</EventID>
    <Level>2</Level>
    <Task>101</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-05-06T01:05:44.000000000Z" />
    <EventRecordID>1207</EventRecordID>
    <Channel>Application</Channel>
    <Computer>Office-1</Computer>
    <Security />
  </System>
  <EventData>
    <Data>XXX.exe</Data>
    <Data>6.0.1.86</Data>
    <Data>1044</Data>
    <Data>01cf68bcc5c44fc8</Data>
    <Data>20</Data>
    <Data>C:\XXXXXXX\XXXWIN\XXX.exe</Data>
    <Data>86a52d05-d4ba-11e3-853e-e03f4984a912</Data>
    <Binary>430072006F00730073002D00700072006F00630065007300730000000000</Binary>
  </EventData>
</Event>


Log Name:      Application
Source:        Application Hang
Date:          6/05/2014 11:44:13 a.m.
Event ID:      1002
Task Category: (101)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      Office-1
Description:
The program XXX.exe version 6.0.1.86 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
 Process ID: 12ec
 Start Time: 01cf67da6ba85ac3
 Termination Time: 16
 Application Path: C:\XXXXXXX\XXXWIN\XXX.exe
 Report Id: 23fbfedf-d4af-11e3-853e-e03f4984a912

Event Xml:
<Event xmlns=
"http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Hang" />
    <EventID Qualifiers="0">1002</EventID>
    <Level>2</Level>
    <Task>101</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-05-05T23:44:13.000000000Z" />
    <EventRecordID>1205</EventRecordID>
    <Channel>Application</Channel>
    <Computer>Office-1</Computer>
    <Security />
  </System>
  <EventData>
    <Data>XXX.exe</Data>
    <Data>6.0.1.86</Data>
    <Data>12ec</Data>
    <Data>01cf67da6ba85ac3</Data>
    <Data>16</Data>
    <Data>C:\XXXXXXX\XXXWIN\XXX.exe</Data>
    <Data>23fbfedf-d4af-11e3-853e-e03f4984a912</Data>
    <Binary>430072006F00730073002D00700072006F00630065007300730000000000</Binary>
  </EventData>
</Event>



BC AdBot (Login to Remove)

 


#2 scotty_ncc1701

scotty_ncc1701

  • Members
  • 520 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:10:49 AM

Posted 06 May 2014 - 07:11 AM

Since it's an in-house app, I'd suggest that you recompile it on a 64-bit machine.  I run 64-bit Windows 8.1U, using Visual Studio 2013, and I know that you can specify that resulting EXE should be 32-bit or 64-bit.

Keep in mind, say the program uses abc123.dll on Windows XP (32-bit), and Windows 7 (64-bit) has the same DLL, internally the DLL might be different, and that can cause issues.  Also, depending on what the app is, and what it's doing, there could be other conflicts, so recompiling is probably the best thing to do first.

Also, depending on the programming environment you use (e.g. Borland C++), you can also place all the necessary files (in the case of Borland C++, the *.BPL files in the same installation folder, and your program will only use them).  Look at the program:

http://www.dependencywalker.com/

You simply find your main EXE, and it will provide a list of the program that it will use.  Then specify these files in your installation program (e.g. innosetup) script.  The installation program then will grab the files, and include them in the resulting SETUP program.  Make sure that all these files are only installed in your application folder.  Remember, in Windows, when a program needs a DLL for example, it looks in the current folder, then in the folders in the PATH statement.

Also, keep this in mind.  Some programs will redistribute files that have the same name (e.g. abc123.dll) as other programs, and also modify the path.  So if your program is expecting abc123.dll, but another program has it also (it could also be and older, newer, or even the same name, but completely different), and they modified the path, that can cause a conflict.  So the bottom line is (my suggestion):

1.  Recompile on a 64-bit computer.

2.  Use dependency walker and redo your setup to get all the files your program needs into the installation folder.

3.  Don't modify the path.

Notes on .NET based programs.

1.  There's no reason to do #2 above for .NET programs.  Any .NET based programs should be using the main .NET assemblies automatically.

2.  If your program uses .NET 1.x, and you try to put it on Windows 8, it will not work.  .NET 1.x isn't supported on Windows 8.  Just food for thought for future development.

3.  If your program uses .NET 1.x, you should consider updating it now.  I DON'T KNOW FOR A FACT, but it would stand to reason that when Windows 9 comes out, M$ MAY drop support for .NET 2.X and maybe .NET 3.X.

4.  Currently .NET 4.51 is out, so I suggest going to at least .NET 4, the highest XP can support.  Then if you want to go to 4.51, if the version of Windows support it (which I know Windows 7 and above does -- I don't know about Vista), when you just do a simple recompile, repackage the SETUP program, and redistribute the program.

I was using an older development environment (BDS 2006) when I was on Windows 7, 32-bit.  When I knew I was going to go to Windows 8, 64-bit, I then went to Visual Studio (VS), about 6 months, or so, before I was going to go to Windows 8.  This gave me time to learn the differences between the environments, and to convert the programs that I chose to convert; some were just deprecated.

Best of luck!

 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users