What's the "discriminator" in addr2line?

13k Views Asked by At

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?

2

There are 2 best solutions below

3
On BEST ANSWER

As far as I understand, discriminator can be useful when there are more than one code path on a single line, see more there (or, alternatively, there if the link is broken). 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.

0
On

A trusted programmer tells me "discriminator n is an artifact of Link Time Optimization, and is unrelated to source"