Short answer: you can't debug the C/C++ portions of code with a native debugger while it runs in a web browser, you'll have to debug your code in some other fashion.
Long answer:
First off, set EMCC_DEBUG=1 outputs debug information about the intermediate code that emcc generates. Use the -g flag when compiling to enable debugging information: emcc -g hello.c -o hello.html. The Emscripten website has an entire page on debugging that you should read. If your project can run in asm.js, you should be able to use -g4's source map technology, which should allow you to use the browser's JS debugger to debug your code. My current project doesn't work under asm.js, which makes debugging interesting.
Sadly, when compiling to WebAssembly (the default), -g doesn't really gain you that much (as far as I can tell), as the JavaScript portion is calling into WebAssembly, which still seems pretty much a blackbox regardless.
(Edit: It seems that the latest version of browsers are improving on the wasm debugging front.)
The easiest way of debugging wasm code is to debug it as a native build -- if the issue isn't Emscripten specific, this is going to be the simplest method.
Failing that, you can always glean what information you can with printf debugging. If you're using plain old C, or not using virtual functions, you might be able to get decent information with EM_ASM(console.trace();); (if you are going through a vtbl, you tend to just get a trace from the member function to the dispatcher, which usually isn't super useful).
Good luck!