The core file will need to match the same executable you're trying to attach dbx to. If you want debug symbols, you'll need to have the customer run a debug version (compiled with -g, unstripped) and send you the core generated from that crash.
Having dbx display source is another step, see the -I option or "use" command to point dbx to the associated source files with your debug build.
Note that I often find a crash won't happen in a debug vs release build. Can be frustrating sometimes.
If you are particularly adventurous, you can use the combination of "where" (show the current function and offset within that function) to display the assembler. Generate assembler from your source file (-S option from xlc) and you can get pretty close to what C/C++ statement is causing the issue. I've done this many times when trying to recreate something that dumps core in production without a debug build in place.
Good luck!