Debug vs Release Component Attrributes

In Target Designer, if you have ever selected the "debug" option in the "Build type" dropdown list of the "Build" dialog box you may have experienced some unusual error messages and behavior when you deployed your image. Aside from being frustrating, this whole "debug" option is somewhat of a red herring.

Way back, when the Embedded product was first conceived, the great plan was to have both release and debug versions of a Client and a Server product. This meant there would be two repositories each for Embedded client and Embedded Server, one to hold the release binaries and one to hold the debug binaries. During build-time you could select which version you wanted to build and the associated binaries would be pulled into your image. However, as often happens, plans get scaled back and we only produced an Embedded Client version. Furthermore, the debug binaries and repository were never implemented, but code still existed within the components and Target Designer that referenced a debug build.

In practice, this means that when you build using the "debug" option the build process evaluates each component for the "debug" flag and, if it finds the flag, adds the associated binaries to the runtime image. If it does not find the flag it ignores that component and moves on. The problem here is two-fold. First, the only repository that the components are associated with contains release binaries, so those are the binaries that will be added to the image. Secondly, some components do not have the "debug" flag set any more and so they are ignored during build time. The resulting runtime is thus missing some files (often critical to booting the image) and it throws error messages during FBA. The solution is just to grab the missing files and add them to you image and then deploy it. Unfortunately it will still not be a debug image, of course.

If you were using this as an aid to troubleshooting your image here are some links to debugging an Embedded image:

- Lynda Allen