Re: Debugging helper functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

----- Original Message -----
> The topic of debugging popped up in the thread about logging. There is one
> thing I did not find in Spice, which I think would be helpful, namely
> debugging helper functions.
> 
> Here is an example of what I have in mind:
> https://github.com/c3d/XL-programming-language/blob/master/xlr/renderer.cpp#L828.
> These are functions that are designed primarily for use from within a
> debugger. The example linked above, from a compiler, do things like
> rendering a parse-tree pointer into the corresponding source code. The
> corresponding operation is quite complex (and occupies a good deal of file
> renderer.cpp), and is shared with “regular” operations like error messages.
> So the debug functions themselves are mostly wrappers intended to make it
> convenient and safe to use the facility from within a debugger (in the
> example, for example, there are a few pointer validity checks to avoid
> crashing the debug session if given a bad pointer)
> 
> In Spice, if I want to see what a given network packet contains, I would
> like, from gdb, to be able to do “p spice_debug_packet(ptr)” and see a
> nicely rendered output of how spice would decode that packet. Do we
> presently have such debug helper functions? If not, I’ll keep that in mind
> for future changes. If they already exist, or if you keep them in some
> private branch, would you be kind enough to share?
> 

It is not really necessary because the demarshaller/parser gives you a void * pointer that you cast to the expected type, then you can pretty-print the message content with gdb.

Eventually, spice-common codegen could learn to generate a pretty-print function, enabled in debug builds, you should get the same output.
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]