There are issues in the build process that create a reliable application, which is simply the executable. An executable is a program that is not running. The running system only knows about the build process what has been transferred in the executable. This means that any debugging information has to be contained in the executable in order to debug the application.