Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4992 Discussions

Trying to analyze a .NET COM+ server

abell9
Beginner
293 Views

I'm trying to use VTune to analyze our apps. One of them is a COM+ Enterprise Services server written in .NET 2.0. I set up a call graph activity in VTune, choosing .NET type profiling and a COM+ Enterprise Services type application. There is no application to launch, and the next step shows the service to select from a list area. When I click to start the activity the VTune environment displays an error message box reading: 'Failed to set COM+ .NET environment'. After clicking OK a second dialog shows this warning message: 'No module from the activity was loaded'. Then a third informational message reads: 'No results were generated for this run. Check the log or output window for further information'.
In the output window in VTune there are a number of entries stating the instrumentation of a number of modules was skipped, they're all system dlls. And three modules donot contain base relocations. Are there any other steps needed to prepare thesystem to do a call graph on a .NET COM+ server?

Thanks for any help.

0 Kudos
3 Replies
Peter_W_Intel
Employee
293 Views
Quoting - abell9

I'm trying to use VTune to analyze our apps. One of them is a COM+ Enterprise Services server written in .NET 2.0. I set up a call graph activity in VTune, choosing .NET type profiling and a COM+ Enterprise Services type application. There is no application to launch, and the next step shows the service to select from a list area. When I click to start the activity the VTune environment displays an error message box reading: 'Failed to set COM+ .NET environment'. After clicking OK a second dialog shows this warning message: 'No module from the activity was loaded'. Then a third informational message reads: 'No results were generated for this run. Check the log or output window for further information'.
In the output window in VTune there are a number of entries stating the instrumentation of a number of modules was skipped, they're all system dlls. And three modules donot contain base relocations. Are there any other steps needed to prepare thesystem to do a call graph on a .NET COM+ server?

Thanks for any help.

Have you added module(s) into interest of module list? Please note these modules should built with Linker "/Fixed:no" for module relocatable

Regarding that failed to set environment dialog, you may start VTuneenv.exe from like as "Visual Studio 2005 command Prompt".

You may submit complex issue (if you can provide test case) to https://premier.intel.com for more technical support.

Regards, Peter

0 Kudos
abell9
Beginner
293 Views

This COM server works through a Dllhost.exe surrogate which is launched by Windows. I have added the modules I wish to analyzeto the Modules of Interest section of the call graph avtivity.All of these modulesare Dlls so, according to documentation, they are linked by default with the '/Fixed:NO' option. However, the same error and warning messages are still displayed by the Performance Environment when I run the Activity.

I noticed that in the Output window all of the Dlls I added were skipped and not instrumented. And on the Configure Call Graph dialog the modulesare all listed in a grid as having 'None' in the Instrumentation Level column. This dialog is very odd because I can not interact with the grid at all. I can not select any modules in the grid, nor can I even scroll the grid - it is totally disabled.

All of these Dlls are compiled with Debug on.Are there any ideas about why these modules can not be instrumented?

0 Kudos
Peter_W_Intel
Employee
293 Views
Quoting - abell9

You have to check if there are corresponding PDB files with DLLs, and use VTune Analyzer's "Open Static Module Viewer.." to check if there are debug info. I think that compiler option "/Zi", and Linker options "/DEBUG", "/Fixed:no" should be used when building DLLs.

Other point is that you have to stop .NET COM++ server before doing data collection. There is no target application to be specified, start profiling -> instrumenting your DLLs and generate results in original directory, save original DLLs in call graph Cache -> Now you can start .NET COM+ server, (work for awhile) stop service to generate call graph results => restore original DLLs to original directory.

It's much better (as I said before) that you raise a ticket to https://premier.intel.com with test case, if you can't solve issue based on above info.

Thanks, Peter

0 Kudos
Reply