x-refs is just a static cross-reference in the binary that can be identified during static-analysis.
So if you main
call 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.