Difference between revisions of "Debug generated C code"

(Windows)
(Windows)
Line 24: Line 24:
 
# Search and replace all occurrences of '''-NODEFAULTLIB:libc''' by '''-NODEFAULTLIB:libc -DEBUG'''.
 
# Search and replace all occurrences of '''-NODEFAULTLIB:libc''' by '''-NODEFAULTLIB:libc -DEBUG'''.
  
 +
With Visual C++, you can have access to the Visual Studio C debugger which will let you attach Eiffel running processes. We certainly recommend that you catch all exceptions (Ctrl + Alt + E to get to the dialog).
  
===Start debug C codes in Visual Studio===
+
If you have issues with Visual Studio not finding some debugging information, it might be necessary to tell Visual Studio where to find the associated PDB of your Eiffel executable or DLL.
 
+
Now you can attach the Eiffel process in Visual Studio and debug. Don't forget to catch all exceptions in Visual Studio.
+
 
+
If you want to debug Eiffel generated DLL's C codes, when coping the DLL, you must copy the ".pdb" with the DLL together since ".pdb" file contains debugging information for Visual Studio.
+

Revision as of 09:21, 8 June 2009

Sometimes you need debug Eiffel generated C codes, this is how to.

Unix

Edit $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include/config.sh and

  1. To the value of wkoptimize add the -g option.
  2. Replace the value of optimize to disable the C optimization (usually -O0) and add -g.

Once you have done that, do in your W_code or F_code directory:

  1. make clobber
  2. finish_freezing

Windows

After doing the changes below (depending on your C compiler), you can recompile your project from scratch and the debug information will be present.

MinGW

Edit $ISE_EIFFEL\studio\config\$ISE_PLATFORM\$ISE_C_COMPILER\config.eif and perform the following edits:

  1. Replace the content of optimize by -O0 -g.
  2. Replace the content of wkoptimize by -O0 -g.

Visual C++

Edit $ISE_EIFFEL\studio\config\$ISE_PLATFORM\$ISE_C_COMPILER\config.eif and perform the following edits:

  1. Replace the content of optimize' by -Od -Zi -MT.
  2. Search and replace all occurrences of -NODEFAULTLIB:libc by -NODEFAULTLIB:libc -DEBUG.

With Visual C++, you can have access to the Visual Studio C debugger which will let you attach Eiffel running processes. We certainly recommend that you catch all exceptions (Ctrl + Alt + E to get to the dialog).

If you have issues with Visual Studio not finding some debugging information, it might be necessary to tell Visual Studio where to find the associated PDB of your Eiffel executable or DLL.