MantisBT - Open CASCADE
View Issue Details
0030541Open CASCADE[OCCT] OCCT:DRAWpublic2019-03-06 11:522019-09-25 22:17
[OCCT] 7.3.0 
[OCCT] 7.4.0[OCCT] 7.4.0 
0030541: Draw Harness - impossible disabling signals
OSD::SetSignal() is called unconditionally at Draw Harness startup.
Although this improves application stability, it doesn't allow simply reproducing crashes of applications that doesn't setup OSD::SetSignal().

Hence, it is proposed adding some extra option like CSF_FPE or Draw Harness parameter disabling signals.
Alternatively, new function OSD::UnsetSignal() can be implemented to disarm signals (and extended dsetsignal syntax).
dsetsignal unset
No tags attached.
related to 0029979closed bugmaster Community Data Exchange - Crash by reading STEP file 
related to 0026329closed kgv Open CASCADE Restore floating point signals handling in DRAW 
Issue History
2019-03-06 11:52kgvNew Issue
2019-03-06 11:52kgvAssigned To => abv
2019-03-06 11:52kgvRelationship addedrelated to 0029979
2019-03-06 11:53kgvRelationship addedrelated to 0028829
2019-03-06 11:53kgvRelationship addedrelated to 0026329
2019-06-13 14:01kgvRelationship addedrelated to 0030775
2019-09-13 13:36abvNote Added: 0087053
2019-09-13 13:36abvAssigned Toabv => kgv
2019-09-13 13:36abvStatusnew => resolved
2019-09-13 13:36abvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=21823#r21823
2019-09-13 13:41kgvNote Added: 0087054
2019-09-13 13:41kgvStatusresolved => reviewed
2019-09-25 22:17abvStatusreviewed => verified
2019-09-25 22:17abvFixed in Version => 7.4.0
2019-09-25 22:17abvResolutionopen => fixed
2019-09-25 22:17abvChangeset attached => occt master 44b80414

2019-09-13 13:36   
The feature has been implemented within #30775: OSD::SetSignal() has got an option to unset handler instead of setting it. Thus calling DRAW command "dsetsignal unset" you will now get the state of the application with no handlers set. Please review.

Note however that application built on Windows with default option /EHa will be able to catch exceptions in "catch(...)" statement even without application-defined handlers installed. Thus signal like access violation will not kill DRAW.
2019-09-13 13:41   
The main purpose is to be able reproducing user reports like 0029979 in Draw Harness, since by default access violations issues are handled as "normal" exceptions by Data Exchange algorithms, so that they are hidden from report (if do not dig deep inside).