On Mon, Oct 24, 2011 at 08:27:34PM +0200, Alon Levy wrote:
> On Mon, Oct 24, 2011 at 03:37:04PM +0100, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" <[email protected]>
> >
> > This change adds some systemtap/dtrace probes to the QEMU monitor
> > client code. In particular it allows watching of all operations
> > for a VM
> >
> > * examples/systemtap/qemu-monitor.stp: Watch all monitor commands
> > * src/Makefile.am: Passing libdir/bindir/sbindir to dtrace2systemtap.pl
> > * src/dtrace2systemtap.pl: Accept libdir/bindir/sbindir as args
> > and look for '# binary:' comment to mark probes against libvirtd
> > vs libvirt.so
> > * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor_json.c,
> > src/qemu/qemu_monitor_text.c: Add probes for key functions
> > ---
> > examples/systemtap/qemu-monitor.stp | 81
> > +++++++++++++++++++++++++++++++++++
> > diff --git a/src/dtrace2systemtap.pl b/src/dtrace2systemtap.pl
> > index fab066b..b577eac 100755
> > --- a/src/dtrace2systemtap.pl
> > +++ b/src/dtrace2systemtap.pl
> > @@ -31,6 +31,10 @@ my $file;
> > my @files;
> > my %files;
> >
> > +my $bindir = shift @ARGV;
> > +my $sbindir = shift @ARGV;
> > +my $libdir = shift @ARGV;
> > +
> > my $probe;
> > my $args;
> >
> > @@ -47,6 +51,8 @@ while (<>) {
> > $files{$file} = { prefix => undef, probes => [] };
> > } elsif (m,^\s*\#\s*prefix:\s*(\S+)\s*$,) {
> > $files{$file}->{prefix} = $1;
> > + } elsif (m,^\s*\#\s*binary:\s*(\S+)\s*$,) {
> > + $files{$file}->{binary} = $1;
> > } else {
> > if (m,\s*probe\s+([a-zA-Z0-9_]+)\((.*?)(\);)?$,) {
> > $probe = $1;
> > @@ -66,7 +72,7 @@ while (<>) {
> > die "unexpected data $_ on line $.";
> > }
> > } else {
> > - die "unexpected data $_ on line $.";
> > + #die "unexpected data $_ on line $.";
> Forgotten?
This was to skip unknown comments, but it really skips too
much. So I'm squashing in this more tailored change:
@@ -45,14 +45,18 @@ while (<>) {
next if /^\s*provider\s+\w+\s*{\s*$/;
next if /^\s*};\s*$/;
- if (m,^\s*\#\s*file:\s*(\S+)\s*$,) {
- $file = $1;
- push @files, $file;
- $files{$file} = { prefix => undef, probes => [] };
- } elsif (m,^\s*\#\s*prefix:\s*(\S+)\s*$,) {
- $files{$file}->{prefix} = $1;
- } elsif (m,^\s*\#\s*binary:\s*(\S+)\s*$,) {
- $files{$file}->{binary} = $1;
+ if (m,^\s*\#,) {
+ if (m,^\s*\#\s*file:\s*(\S+)\s*$,) {
+ $file = $1;
+ push @files, $file;
+ $files{$file} = { prefix => undef, probes => [] };
+ } elsif (m,^\s*\#\s*prefix:\s*(\S+)\s*$,) {
+ $files{$file}->{prefix} = $1;
+ } elsif (m,^\s*\#\s*binary:\s*(\S+)\s*$,) {
+ $files{$file}->{binary} = $1;
+ } else {
+ # ignore unknown comments
+ }
} else {
if (m,\s*probe\s+([a-zA-Z0-9_]+)\((.*?)(\);)?$,) {
$probe = $1;
@@ -72,7 +76,7 @@ while (<>) {
die "unexpected data $_ on line $.";
}
} else {
- #die "unexpected data $_ on line $.";
+ die "unexpected data $_ on line $.";
}
}
}
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list