probevue Command
Purpose
Starts a dynamic trace session. The command can preprocess the header file and exit without starting the dynamic trace session.
Syntax
probevue [ -c "{ timestamp = {
0 | 1| 2} thread = { on | off } tid = { t1,
... } pid = { p1, ... } abs_mem_for_dvars=memory_in_KB
num_threads_traced=number_of_thread_to_trace}" ] [-d] [ -e
Pinned_memory_dvar_percent ] [-f
to_print_time_profile_data_milli_or_micro ] [ -I
Include_file1, ... ] [ -K ] [ -o
Output_file ] [-q
info={none
|normal
|detail
}] [ -s
Buffer_size ][ -t
Interval ][ -T ] [-u] [ -X
Program_name [ -A
"Arguments_to_program" ] ] [ Script_name [ Arguments_to_script ] ]
probevue [ -P C ++_header_file ]
probevue [ -l "{ syscall | syscallx | syscallx32 | syscallx64 | interval | systrace | sysproc | io | net}"]
Description
The probevue command analyzes the operating system and user programs by dynamically enabling the user-specified probes, starting the actions that are associated with the probes when they are triggered, and presenting the captured trace data.
When you specify the probevue command with a vue script, the command enables the tracing that was specified in the script, and produces the tracing output.
When the -P option is specified with the C++ header file, the command produces the preprocessed encrypted C header file. The encrypted C header file can be further used to probe C++ application by using the -I option of the probevue command.
- When the arguments are specified in the script, all the arguments for a vue construct must be on the same line.
- If arguments to the probevue command are specified by command line and in the script, only command line arguments are considered and all command arguments in the script are ignored. This process applies to the vue script arguments also.
- The #VUE_CMD_ARGS and #VUE_SCRIPT_ARGS constructs do not support standard input.
- The dynamic memory requirement of the
probevue
command is proportional to the product of number of CPUs and per-CPU trace buffer size (the value of the default_buffer_size tunable parameter of theprobevctrl
command). Hence, in a system that has large number of CPUs and higher value of per-CPU buffer can cause theprobevue
command to exceed the memory limit set by theulimit
parameter. In such scenarios, run theprobevue
command with the -u flag to cross that limit.
Flags
Item | Description |
---|---|
-A "Arguments_to_program" | Specifies the arguments to the program that you specified to using the -X flag. If there are multiple arguments to the application, enclose each argument in quotation marks. |
-c | Specifies how the trace data needs to be formatted. You must
enclose arguments to this option in quotation marks and separate each
argument by spaces. The options are as follows:
|
-d | Displays the list of probes enabled for the session. |
-e Pinned_memory_dvar_percent | Specifies the percentage of the dynamic data structure memory allocated for dynamic type variables. A minimum of 10 and a maximum of 100 value can be specified as the percentage. |
-f | Specifies the format in which the time taken by probe action must be displayed. The supported
formats follow:
|
-I Include_file1 | Uses the file specified as a post-processed header file, that is one with no C-preprocessor operators. It can be passed through the command line to be included when compiling the vue script. |
-K | Enables RAS events related functionality in a probevue session. |
-l | Lists all the probe points supported by the probe manager. When you specify
the -l flag with the probevue command, no other flags must
be used. You can specify more than one probe manager with the -l flag, such as -l
syscall
-l syscallx
-l interval . The probe manager supports interval, syscall, syscallx, systrace, io, sysproc, and net probes for the -l flag. If you specify wrong arguments or an incorrect probe manager with the -l option, a usage error is displayed.
|
-o Output_file | Writes the report to a file rather than to the standard output. |
-P C++ header file | Preprocesses the C++ header file and
creates an output preprocessed file for each input C++ header
file. The preprocessed output file has the same name as the input C++ header
file, with a .Vue suffix. Note: You cannot use other flags
with the -P option. The -P flag accepts any file name,
except the file name with a .Vue suffix.
|
-q info=level | Specifies reporting level of informational messages while parsing the vue script. The
possible values follow:
|
-s Buffer_size | Specifies the size of the per-CPU trace buffers in KB. This is rounded to the next 4K page. You can use following levels: |
-t Interval | Specifies how often the trace buffers are read. The minimum interval that you can specify is
10 milliseconds. The time interval specified by the regular user (that is a user without the
aix.ras.probevue.trace privilege) is rounded to the next highest multiple of 10 milliseconds.
The read rate is retrieved from the probevue configuration. Note: A regular user can specify
the minimum read rate and the probevctrl command can change the default read
rate.
|
-T | Starts probe action profiling at the start of session. The -T flag ensures that probe actions are profiled when the session is started. |
-u | Starts probevue session and sets the data segment to unlimited value. The -u flag is used to print stack traces from multiple processes of large binaries. |
-X Program_name | Starts a program and enables probes before the program starts. You can use the special environment variables $__CPID and $__CTID within a vue script to identify the process ID and the thread ID of the application that is launched. |
Security
Attention RBAC users and Trusted AIX® users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.
Examples
- To start a probevue session with script syscall.e,
enter:
probevue syscall.e
- To send the trace report to the /tmp/trace_report file,
enter:
probevue -o /tmp/trace_report syscall.e
- To display the trace report of the thread IDs 12345,4567 and the
timestamp relative to the beginning of trace, enter:
probevue -c "timestamp=0 tid=12345,4567" syscall.e
- To include the header file stat.i and allocate 4K of per-CPU
buffer, enter:
probevue –I stat.i –s 4 syscall.e
- To preprocess the C++ header file myheader.h , enter:
The probevue command generates the myheader.Vue file, which is an encrypted C++ header file and is included in the trace session by using the -I option.probevue –P myheader.h
- To increase the percentage of pinned memory for the current session
of the dynamic data structures (stack trace and associative array),
from a default of 50 -75 for the ASO.e script, enter:
probevue -e 75 ASO.e
- The following script is an example of providing the arguments in the
script:
The script runs as:!#/usr/bin/probevue #VUE_CMD_ARGS=-o /tmp/trace_out #VUE_SCRIPT_ARGS=read @@syscall:*:$1:entry { printf("%t\n", get_stktrace(4)); }
./script.e
Files
Item | Description |
---|---|
/usr/bin/probevue | Contains the probevue command. |