View Issue Details

IDProjectCategoryView StatusLast Update
0006143Open CASCADEOCCT:Foundation Classespublic2012-01-17 12:07
ReportermsvAssigned Tomsv 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSWindows NT 
Fixed in Version5.2.1 
Summary0006143: Correct handling of exceptions on WNT
DescriptionThe current mechanism of signal handling in OCC on WNT is not perfect. To
remember, it is initiated by calling the function OSD::SetSignal. The WNT
branch of source code of that function uses POSIX emulation of signal handling,
the function signal, which dispatches signals such as “Segmentation Violation”
to a user function.

The drawback of this method is that not all signals are treated by core of
signal. For example, the signals “Integer Divide by Zero” or “Stack Overflow”
are not caught by this method. The remaining system exceptions are caught by
means of the function SetUnhandledExceptionFilter.

The exceptions are caught fine but one remark. If a user uses
catch(...)
clause somewhere in the upper level function then the statement
catch(Standard_Failure)
doesn't work in a lower stack frame. This leads to unexpected behaviour in user
applications.

To work around this problem Visual C++ CRT function _set_se_translator should
be used.
Additional information
and documentation updates
Documentation remark, added by MSV 2004-10-01 12:33:33:

Improvements:
The mechanism of system exceptions (signals) handling has been improved:
1. All floating point errors are now converted to OCC exceptions inheriting the
class Standard_NumericError.
2. The function OSD::SetSignal() has been enhanced on Windows platform. Now it
can work using either SetUnhandledExceptionFilter Win32 API call or
_set_se_translator MS Visual C++ runtime library call. The needed method is
chosen using OSD::UseSETranslator function.

A numerous number of floating point errors in various modeling algorithms
(extrema, boolean operations, draft features, surface intersector, local and
global properties of shapes, shape healing) were arised after this improvement.
They all were fixed, and the reliability and stability of OCC code at whole
became much better.
Modified entities:
OSD/OSD.cdl:
1. Two overloaded methods UseSETranslator have been added.
2. The description of SetSignal method has been updated.

A number of source files in other packages were modified. Only *.cxx and *.gxx
files were touched.
TagsNo tags attached.
Test case number

Attached Files

  • OCC6143_msv_patch.tgz (15,607 bytes)
  • OCC6143_patch_for_Gallery.tgz (1,903 bytes)
  • OCC6143_msv_patch_v2.tgz (14,876 bytes)
  • OCC6143_patch_for_Gallery_v2.tgz (2,036 bytes)
  • OCC6143_msv_patch_v3.tgz (14,950 bytes)
  • OCC6143_patch_for_Gallery_v3.tgz (2,101 bytes)
  • OCC6143_msv_patch_v4.tgz (14,972 bytes)
  • OCC6143_patch_for_Gallery_v4.tgz (2,160 bytes)
  • OCC6143_msv_patch_v5.tgz (56,307 bytes)
  • OCC6143_msv_patch_v6.tgz (94,523 bytes)
  • OCC6143_msv_patch_v7.tgz (116,054 bytes)
  • OCC6143_QA_patch_v1.tgz (16,939 bytes)
  • Patch_for_test_chl.tgz (513 bytes)
  • OCC6143_msv_patch_v8.tgz (117,194 bytes)
  • post_patch_v1.tgz (18,019 bytes)

Relationships

related to 0006474 closedmsv Incorrect result of intersection of a plane and an extrusion surface 

Activities

2004-06-21 12:27

 

OCC6143_msv_patch.tgz (15,607 bytes)

2004-06-21 12:29

 

OCC6143_patch_for_Gallery.tgz (1,903 bytes)

2004-06-25 15:41

 

OCC6143_msv_patch_v2.tgz (14,876 bytes)

2004-06-25 15:41

 

OCC6143_patch_for_Gallery_v2.tgz (2,036 bytes)

2004-06-28 08:17

 

OCC6143_msv_patch_v3.tgz (14,950 bytes)

2004-06-28 08:17

 

OCC6143_patch_for_Gallery_v3.tgz (2,101 bytes)

2004-06-30 12:01

 

OCC6143_msv_patch_v4.tgz (14,972 bytes)

2004-06-30 12:01

 

OCC6143_patch_for_Gallery_v4.tgz (2,160 bytes)

2004-07-22 14:45

 

OCC6143_msv_patch_v5.tgz (56,307 bytes)

2004-08-10 15:14

 

OCC6143_msv_patch_v6.tgz (94,523 bytes)

2004-08-23 11:50

 

OCC6143_msv_patch_v7.tgz (116,054 bytes)

2004-08-23 11:51

 

OCC6143_QA_patch_v1.tgz (16,939 bytes)

2004-08-23 11:59

 

Patch_for_test_chl.tgz (513 bytes)

2004-09-10 13:28

 

OCC6143_msv_patch_v8.tgz (117,194 bytes)

2004-09-23 13:49

 

post_patch_v1.tgz (18,019 bytes)

Issue History

Date Modified Username Field Change
2004-06-21 14:33 msv CC => imv
2004-06-21 14:36 bugmaster Assigned To bugmaster => msv
2004-06-21 14:36 bugmaster Status new => assigned
2004-06-21 14:37 bugmaster Status assigned => resolved
2004-06-22 17:51 mkv CC => mkv, aki
2004-06-23 14:51 imv CC => msv
2004-06-25 17:56 msv CC => abv
2004-07-05 12:25 bugmaster Assigned To msv => abv
2004-07-05 12:25 bugmaster Status resolved => assigned
2004-07-15 12:31 abv Assigned To abv => msv
2004-07-22 16:44 msv Status assigned => resolved
2004-08-20 14:08 msv OtherBugsDependingOnThis => 6474
2004-09-10 14:32 aki Status resolved => tested
2004-09-13 08:30 bugmaster Status tested => verified
2004-09-15 11:09 bugmaster CC => mkk
2004-09-23 15:51 msv groupset 128 => 8590983296
2004-09-23 16:40 bugmaster Assigned To msv => bugmaster
2004-09-23 16:40 bugmaster Status verified => assigned
2004-09-23 16:40 bugmaster groupset 8590983296 => 17600777552000
2004-09-23 16:40 bugmaster Status assigned => resolved
2004-09-27 16:27 aki Status resolved => tested
2004-10-01 14:12 bugmaster Assigned To bugmaster => msv
2004-10-01 14:12 bugmaster Status tested => assigned
2004-10-01 14:34 msv Status assigned => resolved
2004-10-04 10:04 bugmaster Status resolved => verified
2004-11-01 12:09 bugmaster Status verified => closed
2004-11-01 12:09 bugmaster Resolution @0@ => fixed
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2012-01-17 12:07 atp Description Updated
2012-01-17 12:07 atp Additional Information Updated