LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Is there a MAP file for CVIRTE.DLL?

I'm looking for the MAP file (if there is one) for the CVIRTE.DLL v7.1. Does anyone have this? Maybe I have it in my installation, but I don't know where to look for it.

Thanx,
Orlan
0 Kudos
Message 1 of 6
(4,730 Views)
Hello Orlan,

We do not provide a map file of the CVI runtime engine, but instead, you can create a map file of your application. In that map file, you would be able to track down which CVI function is causing an error, if one exists.

Hope that helps.
Wendy L
LabWindows/CVI Developer Newsletter
0 Kudos
Message 2 of 6
(4,704 Views)
Hi Wendy,

This doesn't seem to necessarily be true 100% of the time. My CVI app in question runs as a true NT service, directly answering to start/stop events from the NT service control manager. There is no gui, so I write entries into the NT event log to indicate when it started up, when it was fully operational, log critical shutdown situations, debugging messages, etc. I've written several of these. Always works like a champ, too. Perhaps the sandbox that the OS puts the service into causes the offset to be strange?

If my CVI application crashes, the offset that is logged to the NT event log is below the preferred base address--in some cases way below the base (which I always leave set to the default). Since the app is running as a service I have a lot harder time debugging it. Sometimes the best I can do is to log informational events every few lines and see what was logged immediately before the crash. This generates way too much data and disk I/O if the app takes one or more days to finally crash. But in return for running as a service, I get maximum performance and the system is operational immediately after the computer boots up. In some cases, this is hours or days before a person even comes over to logon to the server.
So, anyway, here is the offsets that I see from time to time. Perhaps you can help me to make sense of them:

Faulting modules:
-FieldPoint.dll, version 4.1.0.15, fault address 0x00084af6
-cvirte.dll, version 7.1.0.306, fault address 0x001a3dc4
-cvirte.dll, version 7.1.0.306, fault address 0x000a43b4

If I knew what function was being called in cvirte.dll, I might be able to isolate what section of my code is calling the function, and ultimately fix the problem. As it stands now, all I know is that something happened but not 'whodunnit' or why.

Thanx for your time,
Orlan
0 Kudos
Message 3 of 6
(4,694 Views)
Any takers? Why the strange offsets?

I understand that the preferred base isn't necessarily guaranteed--thus the 'preferred' title--but how can I determine what base was actually used at runtime so that I can convert them back to something that I can correlate with the offsets in the map file with the default base?

Orlan

Message Edited by cosmo on 06-22-2005 08:04 PM

0 Kudos
Message 4 of 6
(4,681 Views)
You might try using WinDbg to grab all the information you need about the service. It's a free debugger you can download. You can attach it to your service once it's running. The good thing about this is that you can use DebugPrint to print out statements to the debugger, which windebug will display (as if on a console window). Atleast this will let you follow the execution on your application.

WinDbg also provides a list of loaded modules and threads (with their addresses), so you can cross reference your existing map file for the cvi service.
Bilal Durrani
NI
0 Kudos
Message 5 of 6
(4,658 Views)
I have only used it a few times, but I will give it a shot. I'll try just about anything at this point.

Thanx,
Orlan
0 Kudos
Message 6 of 6
(4,653 Views)