6def FPEAndCoreDumpCfg(flags):
7 """Configure FPE handling and CoreDumpSvc"""
8
9 cfg = ComponentAccumulator()
10 cds = CompFactory.CoreDumpSvc(FastStackTrace=True)
11
12 if flags.Exec.FPE != -2:
13 if flags.Exec.FPE == -1:
14 cfg.addService(CompFactory.FPEControlSvc(), create=True)
15 else:
16 try:
17 fpe_aud = CompFactory.FPEAuditor(NStacktracesOnFPE=flags.Exec.FPE)
18 except AttributeError:
19 pass
20 else:
21 cfg.addAuditor(fpe_aud)
22
23
24 from signal import SIGFPE
25 signalsToCatch = list(cds.Signals)
26 try:
27 signalsToCatch.remove(SIGFPE)
28 cds.Signals = signalsToCatch
29 except ValueError:
30 pass
31
32 cfg.addService(cds, create=True)
33 return cfg