interpreting address in core file : I am looking for any references or guidance on how to interpret the addresses in the backtrack of a core file.
For e.g. a typical backtrack would look like:

(gdb) where
#0 [0x000012345] in func1 + 123 (a.out + 0xABC)
#1 [0x000034345] in func2 + 567 (a.out + 0xea7)
..

I can compile with -g and get exact line numbers. But the executable in production environment would not have been compiled with -g in which case I get a stack as above. I would like to know what the addresses and offsets
[0x000012345],  +123  and 0xABC  represent, how to interpret them and how to map them to line number in the source code. Appreciate any help.