Hello, I am trying to analyze a program using the callgraph option using the following command: vtl activity vping_client -c callgraph -app "vping -p 2 -v -c 100 -r 200 -e 2 0xa001a" -moi "vping -p 2 -v -c 100 -r 200 -e 2 0xa001a" run
The program was compiled with gcc 2.96-98 once with -g and once with -gwarf-2. In both cases I get the following error message:
Tue Dec 3 11:35:02 2002 Error in module vping -p 2 -v -c 100 -r 200 -e 1 0x40018 - Module was not found or is not a PE image. Tue Dec 3 11:35:02 2002 Error in module zx2^@ - Module was not found or is not a PE image.
Good problem report! The best way to track down what's going on is to report this not here, but at Intel's Premier Support web site: when you registered for your beta license you got some info on that. Fact is, it's the quickest and best way to get our support team onto the case
Having said that, the "Module not found" part of that error interests me. It's as if $PATH for either the user that is running the application, or the user who started the dcom processes may not have access to all required directories for the application and its children processes.
You might want to examine the values of $PATH for both users before opening your problem case at Premier.
Jeff indicated that the problem might be with the $PATH environment variable. This is most likely not the case. More likely, the problem is with the way the application was specified. Command-line parameters are supposed to be specified separate from the application. The help for the activity command can be determined by doing vtl -help activity, and it shows the following syntax for -app:
[-app | -app-to-launch [,[,]]
In addition, -moi has the following syntax:
[-moi | -module-of-interest ]
In particular, -moi should not have any command-line parameters after it--it is specifically used for the file name.
The command-line will most likely work if it is changed to the following:
Hi Aaron, the syntax of the activity command does specify either that the arguments should be enclosed in double quotes. Anyway when I use the syntax you suggested I get the message: Module of Interest (-moi) must be specified.
This is a similar example to the one that you posted, except I did it with emacs and passed different command-line parameters into emacs. It worked fine and didn't complain that -moi had not been specified. If that still doesn't work, try passing in the complete path to vping for both -app and -moi.
If you are saying that the syntax for the activity command does not specify that double-quotes are needed when passing in the arguments, then this is correct. However, double-quotes are only necessary when passing in multiple arguments.
For instance, I can do the following:
vtl activity vping_client -c callgraph -app emacs,blah -moi emacs run
which causes emacs to be launched, editing a file named blah. In the case of multiple arguments, the double-quotes are necessary in order to make the command-line options a single entity (for parsing purposes). This is fairly standard for command-line programs that deal with similar situations. However, the man page for vtl can be enhanced to discuss this situation.
Here is your command: vtl activity vping_client -c callgraph -app "vping -p 2 -v -c 100 -r 200 -e 2 0xa001a" -moi "vping -p 2 -v -c 100 -r 200 -e 2 0xa001a" run
the moi (Module of Interest) specified is: vping -p 2 -v -c 100 -r 200 -e 2 0xa001a
2 is not valid module.
The real problem is the specifying arguments to the application. The man page (man vtl) specifies comma separation for arguments to the application. This implies the command should be: vtl activity vping_client -c callgraph -app vping,-p,2,-v,-c,100,-r,200,-e,2,0xa001a, -moi vping run
I took a look at the man page. For the -app option, it says the following:
-app|-app-to-launch [,,[,]] Specify an application to launch with a path , optional command line arguments , and optional working directory .
There are some problems with this text (extra space between path and the first optional comma and an extra optional comma), but I don't see where it says to place a comma between each argument. It should say to place multiple arguments between double-quotes, however. I searched through all the man pages, the reference guide, and the user's guide, and I could not find anything that says to place commas in between arguments, but perhaps I missed something.
In the last sentence of your last post, you indicated that the command should be, according to the man page:
vtl activity vping_client -c callgraph -app vping,-p,2,-v,-c,100,-r,200,-e,2,0xa001a, -moi vping run
This will not work properly, however. Commas, unless placed between double-quotes, as passed to the -app option, are only used to separate the three parameters for -app (, , and ). Please replace it with the following: