Debugging tool for OpenLMI providers.
Robin Hack
rhack at redhat.com
Thu Jan 30 14:57:07 UTC 2014
Ups. I totally forget to add link to this tool :).
https://github.com/marmolak/early-tracer
Thanks to tbzatek for reminder!
Have nice day
Robin Hack
On Thu, Jan 30, 2014 at 03:17:43PM +0100, Robin Hack wrote:
> Hi all.
>
> I wrote little utility for debugging OpenLMI providers from start to
> end.
> I hope that utility will be useful for OpenLMI comunity.
>
> What will you need:
>
> Debug symbols of:
> tog-pegasus
> openlmi-tools
> provider which you want to debug (openlmi-hardware in my example)
> kernel
> ... (gdb will tell you about missing symbols)
>
> Packages:
> systemtap
> gdb
> gcc (for compiling userspace wrapper)
>
> How to use:
> (all steps are under root account with selinux disabled)
>
> 1) Stop tog-pegasus.
>
> 2) Compile wraprun:
> # make wraprun
> Place wraprun to your favorite place in filesystem.
>
> 3) Edit /usr/libexec/pegasus/cmpiLMI_Hardware-cimprovagt.
> Add wraprun to begin of cimprovagt line.
> Example:
> #!/bin/sh
> # ...
> /tmp/wraprun /usr/libexec/pegasus/cimprovagt "$@"
>
> 4) Start stap script:
> # stap -m attach_gdb ./attach-gdb.stp
>
> 5) Switch to another terminal.
>
> 6) Start pegasus.
>
> 7) Try to contact provider
>
> 8) Switch back to terminal with running stap command.
> There should be gdb prompt.
>
> 9) Now in gdb:
> # start: you are in cimprovagt context
> (gdb) set follow-fork-mode child
> (gdb) continue
> (gdb) break LMI_ProcessorInitialize
> (gdb) continue
> # Now you should be inside provider context.
> # You can debug provider from init to cleanup.
> (gdb)
> # You can disable catch exec
>
> FAQ:
> Q: What about gdbserver?
> A: gdbserver (for now) doesn't support follow-fork-mode. But this
> will change in (near?) future.
>
>
> Have nice day
> Robin Hack
>
> PS: If you know better utility or howto, please don't hesitate and reply
> to this mail.
> _______________________________________________
> openlmi-devel mailing list
> openlmi-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel
More information about the openlmi-devel
mailing list