Debugging EiffelStudio
Contents |
Quick description
This section is mainly useful for people working on the debugger, or for people who want to run their workbench "ec" throught "ec".
Instructions
As of EiffelStudio 5.7 you can run and debug EiffelStudio from within EiffelStudio like any other application. One problem that might arise concerns precompilation though. A precompile generated using a finalized version of ec cannot be with a workbench mode of ec and vice versa. When running ec from within ec, you often have the "outer" ec in finalized mode (for efficiency) and the "inner" ec in compiled workbench mode. In order to provide separate precompiles for every instance you need to generate both a finalized precompile and a workbench one. Store the finalized one as normal in $ISE_EIFEFL/precomp and the workbench-mode one in $ISE_EIFFEL/precomp_wb. Now you need to change the value of the environment variable ISE_PRECOMP for the "inner" ec. This has to be done in two ways depending on the version of EiffelStudio you use:
For EiffelStudio 5.7
Put the following in EB_KERNEL
frozen is_workbench: BOOLEAN is
-- Are we running the workbench version of the compiler?
external
"C inline use %"eif_eiffel.h%""
alias
"EIF_IS_WORKBENCH"
end
init_wb_precompile_dir is
-- Initialize workbench precompile dir if we are running in wb mode.
local
e: ENVIRONMENT_ACCESS
ise_eiffel_dir: STRING
precomp_dir: DIRECTORY_NAME
do
if is_workbench then
create e
ise_eiffel_dir := e.get ("ISE_EIFFEL")
create precomp_dir.make_from_string (ise_eiffel_dir)
precomp_dir.extend ("precomp_wb")
e.put (precomp_dir, "ISE_PRECOMP")
end
end
And then have the first body line of EB_KERNEL.make invoke `init_wb_precompile'.
for EiffelStudio > 5.7
See http://dev.eiffel.com/Running_EiffelStudio_in_Workbench_mode



