On 27 July 2017 at 16:21, Daniel P. Berrange <berra...@redhat.com> wrote: > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: >> That said, yes, I was going to ask if we could do this via >> leveraging the tracepoint infrastructure and whatever scripting >> facilities it provides. Are there any good worked examples of >> this sort of thing? Can you do it as an ordinary non-root user? > > Do you have a particular thing you'd like to see an example of ? > > To dynamically probe a function which doesn't have a tracepoint > defined you can do: > > probe process("/usr/bin/qemu-x86_64").function("helper_syscall") { > printf("syscall stasrt\n") > } > > but getting access to the function args is not as easy as with > pre-defined tracepoints.
How do I go about actually running that script? What I have in mind by "worked example" is something like a blog post that says "ok, here's a problem, we want to find out what QEMU is doing in situation X, here's how you do this with $TRACING_THINGY" and generally steps you through how it works assuming you know nothing at all about whatever the tracing facility you're using is. > You can't typically run this as root, Do you mean "non-root" ? > however, I don't think that's a > huge issue, because most QEMU deployments are not running as your own > user account anyway, so you can't directly interact with them no > matter what. It is important, because almost all uses of TCG QEMU are running it from the command line as non-root normal users, especially if they're trying to debug what's going on with a guest binary. So any tracing solution for this kind of usecase must work without requiring root access, I think. I think the users for this are pretty much completely distinct from anybody who would use the term "deployment" for their usage of QEMU :-) thanks -- PMM