What's the "discriminator" in addr2line?

anol picture anol · Jan 17, 2013 · Viewed 9.5k times · Source

When running addr2line in some programs, I get a "discriminator N" comment at the end of the line:

main at /tmp/nsievebits.c:56 (discriminator 3)

The man page doesn't mention it, and a quick Google search seems to indicate mostly source code files, with no clear explanation. Is it some intentionally undocumented feature? More importantly, should I worry about it at all?

Answer

Vincent Fourmond picture Vincent Fourmond · Jun 27, 2013

As far as I understand, discriminator can be useful when there are more than one code path on a single line, see more there. You can safely ignore those, but if one knows how to read them, they can give you very precise information about where exactly the stack points to.