[cctbxbb] cctbx debug build windows

Nicholas Devenish ndevenish at gmail.com
Tue Jul 10 06:27:51 PDT 2018

Hi Pascal,

On Tue, Jul 10, 2018 at 11:01 AM, Pascal <pascal22p at parois.net> wrote:
> How do you build a debug version of cctbx on windows?
> After getting an environement working with bootstrap, I reconfigured with
> configure.py --build=debug and it is now failing when linking against
> python27_d.lib

A full debug build does probably require a debug build of python,
because of windows symbols naming and linking rules.

In assisting my own debugging I have successfully built a version of
cctbx/dials with debug symbols and no optimisation, but linking to the
non-debug runtime libraries. A warning though that without knowing how
well you know windows building this isn't necessarily a simple
process: These aren't optimised for ease-of-use and some steps might
be vestigial/break other configurations, just was the state of things
when I managed to get my debugging working.

I needed to make several custom changes to the SConscripts which I
have committed in:
Key amongst these was the removal of "harmless" flags that forced the
build into apparently obsolete symbol packaging inside object files;
With these changes I successfully built and debugged using Windows'
standard pdb symbol files.

Additionally I did need to pass custom environment flags when setting
up the build directory (manually from scratch, not through
bootstrap.py build.). Inside the destination empty build directory
after everything else was bootstrapped I had a batch file
(effectively, the whole process was run via jenkins for
reproducibility) with the following contents:

                set CXXFLAGS=/DEBUG /Zi
                set LDFLAGS=/INCREMENTAL:NO /DEBUG
                %comspec% /c ..\\base\\bin\\Python\\python
../modules/cctbx_project/libtbx/configure.py --build=debug
--use_environment_flags <module list>
                %comspec% /c bin\\libtbx.scons

I hope these steps somewhat help nudge you in the correct direction.

Nick Devenish

More information about the cctbxbb mailing list