[cfe-dev] [analyzer] gdb pretty printers for analyzer specific types
Sterling Augustine via cfe-dev
cfe-dev at lists.llvm.org
Wed Aug 5 11:00:02 PDT 2020
Hardcoding types inside a python pretty printer is more or less the
standard way of doing it. A pretty printer has to be very closely tied to
the type and structure of the type it is printing. The knowledge must be
quite intimate, or it couldn't do a better job than your standard debug
libcxx has some nicely implemented pretty printers for various standard
types (if I do say so myself). You could take those as examples.
I'll second the "avoid calling process code in a pretty printer". It might
be better than nothing (particularly if there isn't a standard way to call
the dump function), but it is invasive, and there is no reason to believe
it wouldn't allocate memory (say, when concatenating a string), which can
perturb the state of the program you are debugging.
On Wed, Aug 5, 2020 at 10:53 AM David Blaikie via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> We don't have many pretty printers because people haven't
> implemented/desired them, I guess. I implemented a handful to start &
> some folks added/improved on them a bit.
> In general you don't want to call into the process's code in a pretty
> printer if you can help it - because that risks heisenbugs (risks that
> pretty printing a value could change the state of the process being
> debugged) and doesn't work on core files (which have no running
> process to interact with).
> But sometimes it's hard to avoid & I think I've done it in one or two
> places in the existing LLVM Pretty printers - so it's by no means an
> On Wed, Aug 5, 2020 at 10:41 AM Balázs Benics via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
> > I was thinking about some pretty printers.
> > And I'm thinking about SVals and SymExprs specifically.
> > Why do we have no pretty printers for such types?
> > I guess we could reuse their dump() method to acquire string
> > The only problem is that that dumps the output to the standard error
> > What options do I have to get a python pretty-printer using this dump
> > Another possible way to implement such a pretty printer is to hardcode
> the SVal
> > kinds in python to do the right thing for each case.
> > I'm not really a big fan of this way though.
> > If you have experience with gdb pretty printers then your comments more
> then welcomed.
> > Balazs.
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev