[Python-3000] buildbots

Thomas Heller theller at ctypes.org
Wed Aug 29 20:37:09 CEST 2007


Martin v. Löwis schrieb:
>> Do you know if it is possible to configure windows so that debug assertions do NOT
>> display a message box (it is very convenient for interactive testing, but not so
>> for automatic tests)?
> 
> You can use _set_error_mode(_OUT_TO_STDERR) to make assert() go to
> stderr rather than to a message box. You can use
> _CrtSetReportMode(_CRT_ASSERT /* or _CRT_WARN or CRT_ERROR */,
> _CRTDBG_MODE_FILE) to make _ASSERT() go to a file; you need to
> call _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR ) in
> addition to make the file stderr.
> 
> Not sure what window precisely you got, so I can't comment which
> of these (if any) would have made the message go away.

Currently, the debug build of py3k fails in test_os.py with an assertion
in the C library inside the execv call.  This displays a dialogbox from the MSVC
Debug Library:

  Debug Assertion Failed!
  Program: c:\svn\py3k\PCBuild\python_d.exe
  File: execv.c
  Line: 44

  Expression: *argvector != NULL

  For information ....
  (Press Retry to debug the application)

  Abbrechen Wiederholen Ignorieren

The last line is the labels on three buttons that are displayed.


If I insert these statements into Modules\posixmodule.c:

	_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
	_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
	_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
	_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
	_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
	_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);

	_set_error_mode(_OUT_TO_STDERR);

and recompile and test then the dialog box looks like this:

  Die Anweisung in "0x10..." verweist auf Speicher in "0x00000000".  Der Vorgang
  "read" konnte nicht im Speciher durchgeführt werden.

  Klicken Sie auf "OK", um das programm zu beenden.
  Klicken Sie auf "Abbrechen", um das programm zu debuggen.

      OK Abbrechen

These messageboxes of course hang the tests on the windows build servers,
so probably it would be good if they could be disabled completely.

Thomas



More information about the Python-3000 mailing list