x-refs is just a static cross-reference in the binary that can be identified during static-analysis.
So if you
funcA you could tell that by looking at x-refs on
funcA. But you can't be sure that it will be in fact called during runtime - there might be some conditional jumps that only call
funcA in a certain state.
Stacktrace presents the actual calls at a given point so it's dynamic and might change after another instruction execution.
Stack trace information is gathered by looking at
EBP on the stack ref. x-refs are done by analyzing the binary.