File: vgdb.1

package info (click to toggle)
valgrind 1:3.10.0-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 97,452 kB
  • ctags: 62,380
  • sloc: ansic: 589,429; xml: 21,096; exp: 8,751; cpp: 7,366; asm: 6,526; perl: 5,656; sh: 5,334; makefile: 4,946; haskell: 195
file content (208 lines) | stat: -rw-r--r-- 6,824 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
'\" t
.\"     Title: vgdb
.\"    Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: 09/11/2014
.\"    Manual: Release 3.10.0
.\"    Source: Release 3.10.0
.\"  Language: English
.\"
.TH "VGDB" "1" "09/11/2014" "Release 3.10.0" "Release 3.10.0"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
vgdb \- intermediary between Valgrind and GDB or a shell
.SH "SYNOPSIS"
.HP \w'\fBvgdb\fR\ 'u
\fBvgdb\fR [\fIoptions\fR]
.SH "DESCRIPTION"
.PP
\fBvgdb\fR
("Valgrind to GDB") is used as an intermediary between Valgrind and GDB or a shell\&. It has two usage modes:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
As a standalone utility, it is used from a shell command line to send monitor commands to a process running under Valgrind\&. For this usage, the vgdb OPTION(s) must be followed by the monitor command to send\&. To send more than one command, separate them with the
\fB\-c\fR
option\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
In combination with GDB "target remote |" command, it is used as the relay application between GDB and the Valgrind gdbserver\&. For this usage, only OPTION(s) can be given, but no COMMAND can be given\&.
.RE
.SH "OPTIONS"
.PP
\fB\-\-pid=<number>\fR
.RS 4
Specifies the PID of the process to which vgdb must connect to\&. This option is useful in case more than one Valgrind gdbserver can be connected to\&. If the
\fB\-\-pid\fR
argument is not given and multiple Valgrind gdbserver processes are running, vgdb will report the list of such processes and then exit\&.
.RE
.PP
\fB\-\-vgdb\-prefix\fR
.RS 4
Must be given to both Valgrind and vgdb if you want to change the default prefix for the FIFOs (named pipes) used for communication between the Valgrind gdbserver and vgdb\&.
.RE
.PP
\fB\-\-wait=<number>\fR
.RS 4
Instructs vgdb to search for available Valgrind gdbservers for the specified number of seconds\&. This makes it possible start a vgdb process before starting the Valgrind gdbserver with which you intend the vgdb to communicate\&. This option is useful when used in conjunction with a
\fB\-\-vgdb\-prefix\fR
that is unique to the process you want to wait for\&. Also, if you use the
\fB\-\-wait\fR
argument in the GDB "target remote" command, you must set the GDB remotetimeout to a value bigger than the \-\-wait argument value\&. See option
\fB\-\-max\-invoke\-ms\fR
(just below) for an example of setting the remotetimeout value\&.
.RE
.PP
\fB\-\-max\-invoke\-ms=<number>\fR
.RS 4
Gives the number of milliseconds after which vgdb will force the invocation of gdbserver embedded in Valgrind\&. The default value is 100 milliseconds\&. A value of 0 disables forced invocation\&. The forced invocation is used when vgdb is connected to a Valgrind gdbserver, and the Valgrind process has all its threads blocked in a system call\&.
.sp
If you specify a large value, you might need to increase the GDB "remotetimeout" value from its default value of 2 seconds\&. You should ensure that the timeout (in seconds) is bigger than the
\fB\-\-max\-invoke\-ms\fR
value\&. For example, for
\fB\-\-max\-invoke\-ms=5000\fR, the following GDB command is suitable:
.sp
.if n \{\
.RS 4
.\}
.nf
    (gdb) set remotetimeout 6
    
.fi
.if n \{\
.RE
.\}
.sp
.RE
.PP
\fB\-\-cmd\-time\-out=<number>\fR
.RS 4
Instructs a standalone vgdb to exit if the Valgrind gdbserver it is connected to does not process a command in the specified number of seconds\&. The default value is to never time out\&.
.RE
.PP
\fB\-\-port=<portnr>\fR
.RS 4
Instructs vgdb to use tcp/ip and listen for GDB on the specified port nr rather than to use a pipe to communicate with GDB\&. Using tcp/ip allows one to have GDB running on one computer and debugging a Valgrind process running on another target computer\&. Example:
.sp
.if n \{\
.RS 4
.\}
.nf
# On the target computer, start your program under valgrind using
valgrind \-\-vgdb\-error=0 prog
# and then in another shell, run:
vgdb \-\-port=1234
.fi
.if n \{\
.RE
.\}
.sp
On the computer which hosts GDB, execute the command:
.sp
.if n \{\
.RS 4
.\}
.nf
gdb prog
(gdb) target remote targetip:1234
.fi
.if n \{\
.RE
.\}
.sp
where targetip is the ip address or hostname of the target computer\&.
.RE
.PP
\fB\-c\fR
.RS 4
To give more than one command to a standalone vgdb, separate the commands by an option
\fB\-c\fR\&. Example:
.sp
.if n \{\
.RS 4
.\}
.nf
vgdb v\&.set log_output \-c leak_check any
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fB\-l\fR
.RS 4
Instructs a standalone vgdb to report the list of the Valgrind gdbserver processes running and then exit\&.
.RE
.PP
\fB\-D\fR
.RS 4
Instructs a standalone vgdb to show the state of the shared memory used by the Valgrind gdbserver\&. vgdb will exit after having shown the Valgrind gdbserver shared memory state\&.
.RE
.PP
\fB\-d\fR
.RS 4
Instructs vgdb to produce debugging output\&. Give multiple
\fB\-d\fR
args to increase the verbosity\&. When giving
\fB\-d\fR
to a relay vgdb, you better redirect the standard error (stderr) of vgdb to a file to avoid interaction between GDB and vgdb debugging output\&.
.RE
.SH "SEE ALSO"
.PP
valgrind(1),
$INSTALL/share/doc/valgrind/html/index\&.html
or
http://www\&.valgrind\&.org/docs/manual/index\&.html,
\m[blue]\fBDebugging your program using Valgrind\*(Aqs gdbserver and GDB\fR\m[]\&\s-2\u[1]\d\s+2\m[blue]\fBvgdb\fR\m[]\&\s-2\u[2]\d\s+2,
\m[blue]\fBValgrind monitor commands\fR\m[]\&\s-2\u[3]\d\s+2\&.
.SH "AUTHOR"
.PP
Philippe Waroquiers\&.
.SH "NOTES"
.IP " 1." 4
Debugging your program using Valgrind's gdbserver and GDB
.RS 4
\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
.RE
.IP " 2." 4
vgdb
.RS 4
\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.vgdb
.RE
.IP " 3." 4
Valgrind monitor commands
.RS 4
\%http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.valgrind-monitor-commands
.RE