Re: Tools to classify / uniquify core dumps or stack traces?
Paul Smith <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <1375406012.3028.38.camel@homebase> |
On Thu, 2013-08-01 at 21:35 +0200, Jan Kratochvil wrote: > On Thu, 01 Aug 2013 21:26:21 +0200, Paul Smith wrote: > > Hi all. I've got an environment where I'm getting lots of core dumps > > from various places and it's very tedious to go through them and > > determine which ones are for unique problems, and which are essentially > > duplicates (same bug causing the core dump). > > > > I was thinking of throwing together some kind of Perl or Python script > > that could compare and categorize stack traces, but I thought surely > > someone must have done something like this before. > > > > Anyone have any pointers or thoughts about something like this? > > ABRT, it has several backends how to report the results (the typical one is > Bugzilla), it also supports heuristic duplicates detection etc. > It is shipped in all recent Fedora releases by default and it is also > a project deployable on any OS: > https://fedorahosted.org/abrt/ > > There is also Apport (I do not have experience with it). I don't need to collect the cores (at least not yet), they are being obtained through other methods (which I don't have a lot of control over, currently) and I have bunches of them sitting in a directory. Along with them I have the binary they were generated from, a source tree it was built from, and a sysroot containing the runtime libraries it was invoked with. I can easily script up something to generate GDB stack traces from them. I just need something to reduce/classify them. It looks like btparser is close to what I need. It's an unusual choice, IMHO, to use C to implement something which so fundamentally depends on text manipulation; I would have chosen Perl or Python myself. But I'll definitely take a look. I notice that "satyr" is said to be "the next generation btparser", but from my very brief overview it appears to be more tightly bound up with abrt and the way that abrt packages things, and I'm not using abrt. Thanks for the pointer!