Floating point error

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
gerhardsachs
Newbie
Newbie
Posts: 10
Joined: Thu Mar 13, 2014 12:00 am

Floating point error

Post by gerhardsachs » Fri May 09, 2014 7:55 am

in my application a teechart is place on a frame. Multiple instances of this frame are placed on a vcl form dynamically.
The charts are placed and initialized on the forms constructor.
Later the charts get their xy values, axes are scaled either manually or automatic and so on.
Sometimes I get an error which can not be tracked down to a certain location.
The stack dump shows that something internal at the teechart goes wrong.

Teechart is Pro2014.10.140220 32Bit VCL.
A similar problem has been reported by a customer with an earlier version of the software.
So it is very likely a problem that is not dependent on the particular teechart version.
Here is a bugreport from madexcept.
Hope this gives you some hint.

Code: Select all

##################################################################################################
date/time          : 2014-05-09, 08:44:41, 684ms
computer name      : WIN-6UJTF8OIGQ9
user name          : gs
registered owner   : Windows-Benutzer
operating system   : Windows 7 x64 Service Pack 1 build 7601
system language    : German
system up time     : 15 minutes 2 seconds
program up time    : 3 minutes 17 seconds
processors         : 2x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
physical memory    : 2599/4095 MB (free/total)
free disk space    : (C:) 31,09 GB (L:) 163,30 GB
display mode       : 1920x1200, 32 bit
process id         : $3b8
allocated memory   : 99,82 MB
largest free block : 1,44 GB
executable         : Eme2012.exe
exec. date/time    : 2014-05-09 08:41
version            : 2012.6.5235.53686
compiled with      : Delphi XE4
madExcept version  : 4.0.8.1
callstack crc      : $564e11e4, $bebaeb9f, $e6fd7a1b
count              : 3
exception number   : 1
exception class    : EOverflow
exception message  : Gleitkommaüberlauf.

main thread ($93c):
00eee89d +055 Eme2012.exe  VCLTee.TeEngine       TChartAxis.InternalCalcRange
00eeeb2b +087 Eme2012.exe  VCLTee.TeEngine       TChartAxis.AdjustMaxMin
00f002be +046 Eme2012.exe  VCLTee.TeEngine       CalcAxisRect
00f00944 +16c Eme2012.exe  VCLTee.TeEngine       TCustomAxisPanel.InternalDraw
00ec2884 +120 Eme2012.exe  VCLTee.TeeProcs       InnerDraw
00ec2939 +021 Eme2012.exe  VCLTee.TeeProcs       TCustomTeePanel.Draw
00ec2535 +041 Eme2012.exe  VCLTee.TeeProcs       TCustomTeePanel.Draw
00ec29d4 +020 Eme2012.exe  VCLTee.TeeProcs       TCustomTeePanel.Paint
005d2033 +057 Eme2012.exe  Vcl.Controls          TCustomControl.PaintWindow
005cc3c5 +055 Eme2012.exe  Vcl.Controls          TWinControl.PaintHandler
005ccbb8 +048 Eme2012.exe  Vcl.Controls          TWinControl.WMPaint
005d1fcd +011 Eme2012.exe  Vcl.Controls          TCustomControl.WMPaint
005c773d +2bd Eme2012.exe  Vcl.Controls          TControl.WndProc
005cc1f9 +5c5 Eme2012.exe  Vcl.Controls          TWinControl.WndProc
00ec300c +00c Eme2012.exe  VCLTee.TeeProcs       TCustomTeePanel.WndProc
005cb83c +02c Eme2012.exe  Vcl.Controls          TWinControl.MainWndProc
00549d44 +014 Eme2012.exe  System.Classes        StdWndProc
77990107 +02b ntdll.dll                          KiUserCallbackDispatcher
76537885 +00a USER32.dll                         DispatchMessageW
006c00ff +0f3 Eme2012.exe  Vcl.Forms             TApplication.ProcessMessage
006c0142 +00a Eme2012.exe  Vcl.Forms             TApplication.HandleMessage
006c047d +0c9 Eme2012.exe  Vcl.Forms             TApplication.Run
017766a5 +0a9 Eme2012.exe  Eme2012         76 +8 initialization
76a43388 +010 kernel32.dll                       BaseThreadInitThunk

thread $818:
779a0156 +0e ntdll.dll     NtWaitForMultipleObjects
76a43388 +10 kernel32.dll  BaseThreadInitThunk

thread $69c: <priority:15>
779a0156 +0e ntdll.dll                                    NtWaitForMultipleObjects
774615e3 +fa KERNELBASE.dll                               WaitForMultipleObjectsEx
76a419f3 +89 kernel32.dll                                 WaitForMultipleObjectsEx
76a441fb +13 kernel32.dll                                 WaitForMultipleObjects
0097904f +8b Eme2012.exe    nxllMemoryManagerImpl 434 +17 CleanupThreadProc
004b014d +0d Eme2012.exe    madExcept                     CallThreadProcSafe
004b01b2 +32 Eme2012.exe    madExcept                     ThreadExceptFrame
76a43388 +10 kernel32.dll                                 BaseThreadInitThunk
>> created by main thread ($93c) at:
00979219 +29 Eme2012.exe    nxllMemoryManagerImpl 535  +3 StartCleanupThread

thread $b80:
779a0156 +00e ntdll.dll                                    NtWaitForMultipleObjects
774615e3 +0fa KERNELBASE.dll                               WaitForMultipleObjectsEx
76a419f3 +089 kernel32.dll                                 WaitForMultipleObjectsEx
76a441fb +013 kernel32.dll                                 WaitForMultipleObjects
00a2c725 +01d Eme2012.exe    nxsrFileImplWin32    1815  +2 TnxFlushThread.Wait
00a2c5fe +122 Eme2012.exe    nxsrFileImplWin32    1784 +29 TnxFlushThread.DoExecute
00a27fe5 +03d Eme2012.exe    nxllBackgroundThread   78 +18 BackgroundThreadProc
0040bbd8 +028 Eme2012.exe    System                375  +0 ThreadWrapper
004b014d +00d Eme2012.exe    madExcept                     CallThreadProcSafe
004b01b2 +032 Eme2012.exe    madExcept                     ThreadExceptFrame
76a43388 +010 kernel32.dll                                 BaseThreadInitThunk
>> created by main thread ($93c) at:
00a280c7 +0a3 Eme2012.exe    nxllBackgroundThread  106 +16 TnxBackgroundThread.Create

thread $114: <priority:2>
76537c18 +45 USER32.dll             GetMessageA
004b014d +0d Eme2012.exe  madExcept CallThreadProcSafe
004b01b2 +32 Eme2012.exe  madExcept ThreadExceptFrame
76a43388 +10 kernel32.dll           BaseThreadInitThunk
>> created by main thread ($93c) at:
74fb6c8b +00 winmm.dll

thread $b90: <priority:1>
7799f952 +0e ntdll.dll              NtRemoveIoCompletion
004b014d +0d Eme2012.exe  madExcept CallThreadProcSafe
004b01b2 +32 Eme2012.exe  madExcept ThreadExceptFrame
76a43388 +10 kernel32.dll           BaseThreadInitThunk
>> created by main thread ($93c) at:
7390a34f +00 mswsock.dll

thread $a80 (TnxSimpleTimerThread): <priority:2>
7799f8ca +0e ntdll.dll                             NtWaitForSingleObject
77461497 +92 KERNELBASE.dll                        WaitForSingleObjectEx
76a4118f +3e kernel32.dll                          WaitForSingleObjectEx
76a41143 +0d kernel32.dll                          WaitForSingleObject
00986f20 +24 Eme2012.exe    nxllSync       220  +4 TnxEvent.WaitForQuietly
0099871a +1a Eme2012.exe    nxllThread     903  +2 TnxTimerThread.InnerExecute
00997f6c +90 Eme2012.exe    nxllThread     638 +14 TnxInternalInitThread.DoExecute
00997ccf +27 Eme2012.exe    nxllThread     478  +3 TnxThread.Execute
004b0267 +2b Eme2012.exe    madExcept              HookedTThreadExecute
00546282 +42 Eme2012.exe    System.Classes         ThreadProc
0040bbd8 +28 Eme2012.exe    System         375  +0 ThreadWrapper
004b014d +0d Eme2012.exe    madExcept              CallThreadProcSafe
004b01b2 +32 Eme2012.exe    madExcept              ThreadExceptFrame
76a43388 +10 kernel32.dll                          BaseThreadInitThunk
>> created by main thread ($93c) at:
00997bdc +3c Eme2012.exe    nxllThread     410  +3 TnxThread.Create

thread $4b8:
7799f8ca +0e ntdll.dll                NtWaitForSingleObject
77461497 +92 KERNELBASE.dll           WaitForSingleObjectEx
76a4118f +3e kernel32.dll             WaitForSingleObjectEx
76a41143 +0d kernel32.dll             WaitForSingleObject
004b014d +0d Eme2012.exe    madExcept CallThreadProcSafe
004b01b2 +32 Eme2012.exe    madExcept ThreadExceptFrame
76a43388 +10 kernel32.dll             BaseThreadInitThunk
>> created by main thread ($93c) at:
75024c95 +00 winspool.drv

thread $ab0:
779a1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
76a43388 +10 kernel32.dll  BaseThreadInitThunk

thread $168:
779a1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
76a43388 +10 kernel32.dll  BaseThreadInitThunk

thread $270:
779a1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
76a43388 +10 kernel32.dll  BaseThreadInitThunk

modules:
00400000 Eme2012.exe    2012.6.5235.53686  L:\s\alfing\eme2012\pc\source_xe4
10000000 MscDll.dll     1.20.0.0           L:\s\alfing\eme2012\pc\source_xe4
6cc40000 DAVHLPR.dll    6.1.7600.16385     C:\Windows\System32
6cc50000 davclnt.dll    6.1.7601.18201     C:\Windows\System32
6cc70000 ntlanman.dll   6.1.7601.17514     C:\Windows\System32
6cc90000 drprov.dll     6.1.7600.16385     C:\Windows\System32
6cca0000 vmhgfs.dll     8.2.2.0            C:\Windows\System32
6ccd0000 FONTSUB.dll    6.1.7601.18177     C:\Windows\system32
6d5c0000 FaultRep.dll   6.1.7601.17514     C:\Windows\system32
6d650000 msimg32.dll    6.1.7600.16385     C:\Windows\system32
73900000 mswsock.dll    6.1.7601.18254     C:\Windows\system32
73a60000 wshtcpip.dll   6.1.7600.16385     C:\Windows\System32
743f0000 msxml6.dll     6.30.7601.17988    C:\Windows\System32
747d0000 propsys.dll    7.0.7601.17514     C:\Windows\system32
74a90000 ntmarta.dll    6.1.7600.16385     C:\Windows\system32
74b60000 apphelp.dll    6.1.7601.17514     C:\Windows\system32
74cf0000 gdiplus.dll    6.1.7601.18120     C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18120_none_72d2e82386681b36
74e80000 olepro32.dll   6.1.7601.17514     C:\Windows\system32
74ea0000 WINSTA.dll     6.1.7601.17514     C:\Windows\system32
74ed0000 wtsapi32.dll   6.1.7601.17514     C:\Windows\system32
74ee0000 dwmapi.dll     6.1.7600.16385     C:\Windows\system32
74f00000 uxtheme.dll    6.1.7600.16385     C:\Windows\system32
74fb0000 winmm.dll      6.1.7601.17514     C:\Windows\system32
74ff0000 oledlg.dll     6.1.7600.16385     C:\Windows\system32
75010000 winspool.drv   6.1.7601.17514     C:\Windows\system32
75070000 comctl32.dll   6.10.7601.17514    C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2
75210000 oleacc.dll     7.0.0.0            C:\Windows\system32
75250000 wsock32.dll    6.1.7600.16385     C:\Windows\system32
75260000 SHFolder.dll   6.1.7600.16385     C:\Windows\system32
75270000 mpr.dll        6.1.7600.16385     C:\Windows\system32
75290000 version.dll    6.1.7600.16385     C:\Windows\system32
753a0000 CRYPTBASE.dll  6.1.7600.16385     C:\Windows\syswow64
753b0000 SspiCli.dll    6.1.7601.18270     C:\Windows\syswow64
75410000 SHELL32.dll    6.1.7601.18222     C:\Windows\syswow64
76360000 oleaut32.dll   6.1.7601.17676     C:\Windows\syswow64
76480000 comdlg32.dll   6.1.7601.17514     C:\Windows\syswow64
76500000 sechost.dll    6.1.7600.16385     C:\Windows\SysWOW64
76520000 USER32.dll     6.1.7601.17514     C:\Windows\syswow64
76620000 USP10.dll      1.626.7601.18009   C:\Windows\syswow64
76700000 SETUPAPI.dll   6.1.7601.17514     C:\Windows\syswow64
76a30000 kernel32.dll   6.1.7601.18409     C:\Windows\syswow64
76d60000 MSCTF.dll      6.1.7600.16385     C:\Windows\syswow64
76e30000 ole32.dll      6.1.7601.17514     C:\Windows\syswow64
76fc0000 CLBCatQ.DLL    2001.12.8530.16385 C:\Windows\syswow64
77050000 ADVAPI32.dll   6.1.7601.18247     C:\Windows\syswow64
770f0000 CFGMGR32.dll   6.1.7601.17621     C:\Windows\syswow64
77120000 LPK.dll        6.1.7601.18177     C:\Windows\syswow64
77130000 IMM32.DLL      6.1.7601.17514     C:\Windows\system32
77190000 RPCRT4.dll     6.1.7601.18205     C:\Windows\syswow64
77290000 DEVOBJ.dll     6.1.7601.17621     C:\Windows\syswow64
772c0000 WLDAP32.dll    6.1.7601.17514     C:\Windows\syswow64
77330000 SHLWAPI.dll    6.1.7601.17514     C:\Windows\syswow64
77390000 msvcrt.dll     7.0.7601.17744     C:\Windows\syswow64
77440000 NSI.dll        6.1.7600.16385     C:\Windows\syswow64
77450000 KERNELBASE.dll 6.1.7601.18229     C:\Windows\syswow64
774a0000 WS2_32.dll     6.1.7601.17514     C:\Windows\syswow64
774f0000 GDI32.dll      6.1.7601.18275     C:\Windows\syswow64
77980000 ntdll.dll      6.1.7601.18247     C:\Windows\SysWOW64

processes:
000 Idle              0 0    0
004 System            0 0    0
104 smss.exe          0 0    0
164 csrss.exe         0 0    0
190 wininit.exe       0 0    0
1a0 csrss.exe         1 0    0
1d8 winlogon.exe      1 0    0
200 services.exe      0 0    0
208 lsass.exe         0 0    0
210 lsm.exe           0 0    0
274 svchost.exe       0 0    0
2c0 svchost.exe       0 0    0
318 svchost.exe       0 0    0
340 svchost.exe       0 0    0
36c svchost.exe       0 0    0
388 svchost.exe       0 0    0
3f4 svchost.exe       0 0    0
358 svchost.exe       0 0    0
474 spoolsv.exe       0 0    0
49c svchost.exe       0 0    0
518 armsvc.exe        0 0    0
550 taskhost.exe      1 26   19  normal
5a0 ibguard.exe       0 0    0
5dc dwm.exe           1 14   2   high
62c vmtoolsd.exe      0 0    0
65c explorer.exe      1 345  213 normal
7d4 TPAutoConnSvc.exe 0 0    0
59c ibserver.exe      0 0    0
5d8 vmtoolsd.exe      1 54   24  normal
8d8 TPAutoConnect.exe 1 14   8   normal
8e0 conhost.exe       1 20   1   normal
998 dllhost.exe       0 0    0
a20 msdtc.exe         0 0    0
b08 SearchIndexer.exe 0 0    0
b68 wmpnetwk.exe      0 0    0
144 svchost.exe       0 0    0
718 svchost.exe       0 0    0
430 TOTALCMD64.EXE    1 412  274 normal
738 bds.exe           1 3559 972 normal C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin
3b8 Eme2012.exe       1 577  256 normal L:\s\alfing\eme2012\pc\source_xe4
604 splwow64.exe      1 4    1   normal
950 audiodg.exe       0 0    0

hardware:
+ Batteries
  - Microsoft Composite Battery
  - Microsoft-Netzteil
+ Computer
  - ACPI x64-based PC
+ Disk drives
  - VMware, VMware Virtual S SCSI Disk Device
+ Display adapters
  - VMware SVGA 3D (driver 7.14.1.5025)
+ DVD/CD-ROM drives
  - NECVMWar VMware SATA CD01 ATA Device
+ Floppy disk drives
  - Diskettenlaufwerk
+ Floppy drive controllers
  - Standard-Diskettenlaufwerkcontroller
+ IDE ATA/ATAPI controllers
  - ATA Channel 0
  - ATA Channel 0
  - ATA Channel 1
  - ATA Channel 1
  - ATA Channel 10
  - ATA Channel 11
  - ATA Channel 12
  - ATA Channel 13
  - ATA Channel 14
  - ATA Channel 15
  - ATA Channel 16
  - ATA Channel 17
  - ATA Channel 18
  - ATA Channel 19
  - ATA Channel 2
  - ATA Channel 20
  - ATA Channel 21
  - ATA Channel 22
  - ATA Channel 23
  - ATA Channel 24
  - ATA Channel 25
  - ATA Channel 26
  - ATA Channel 27
  - ATA Channel 28
  - ATA Channel 29
  - ATA Channel 3
  - ATA Channel 4
  - ATA Channel 5
  - ATA Channel 6
  - ATA Channel 7
  - ATA Channel 8
  - ATA Channel 9
  - Intel(R) 82371AB/EB PCI-Bus-Master-IDE-Controller
  - Standard AHCI 1.0 Serieller-ATA-Controller
+ Keyboards
  - Standardtastatur (PS/2)
+ Memory devices
  - Speichermodul
  - Speichermodul
+ Mice and other pointing devices
  - VMware Pointing Device (driver 12.5.2.0)
+ Monitors
  - Nicht-PnP-Monitor (Standard)
  - Nicht-PnP-Monitor (Standard)
+ Network adapters
  - Intel(R) PRO/1000 MT-Netzwerkverbindung
  - Intel(R) PRO/1000 MT-Netzwerkverbindung #2
  - Microsoft-ISATAP-Adapter
  - Microsoft-ISATAP-Adapter #2
  - Microsoft-ISATAP-Adapter #3
  - Teredo Tunneling Pseudo-Interface
  - WAN Miniport (IKEv2)
  - WAN-Miniport (IP)
  - WAN-Miniport (IPv6)
  - WAN-Miniport (L2TP)
  - WAN-Miniport (Netzwerkmonitor)
  - WAN-Miniport (PPPOE)
  - WAN-Miniport (PPTP)
  - WAN-Miniport (SSTP)
+ Ports (COM & LPT)
  - Druckeranschluss (LPT1)
  - Kommunikationsanschluss (COM1)
  - Kommunikationsanschluss (COM2)
+ Processors
  - Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
  - Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
+ Sound, video and game controllers
  - High Definition Audio-Gerät
+ Storage controllers
  - LSI-Adapter, SAS 3000-Serie, 8-Port mit 1068 (driver 1.28.3.52)
+ Storage volume shadow copies
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
  - Standard-Volumeschattenkopie
+ System devices
  - ACPI-Schalter
  - Busenumerator für Verbundgeräte
  - DMA-Controller
  - Enumerator-Treiber für Microsoft Virtual Drive
  - Hauptplatinenressourcen
  - Hauptplatinenressourcen
  - High Definition Audio-Controller
  - Hochpräzisionsereigniszeitgeber
  - Intel 82371AB/EB PCI-zu-ISA-Brücke (ISA-Modus)
  - Intel 82443BX Pentium(R) II Prozessor-zu-PCI-Brücke
  - Logische Schnittstelle für Druckeranschluss
  - Microsoft ACPI-konformes System
  - Microsoft-Systemverwaltungs-BIOS-Treiber
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Express-Standardstammanschluss
  - PCI Standard-PCI-zu-PCI-Brücke
  - PCI Standard-PCI-zu-PCI-Brücke
  - PCI-Bus
  - PnP-Softwaregeräte-Enumerator
  - Programmierbarer EISA-Interruptcontroller
  - Remote Desktop Device Redirector Bus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - Standardbus
  - System CMOS/Echtzeituhr
  - Systemlautsprecher
  - Systemzeitgeber
  - Terminalserver-Maustreiber
  - Terminalserver-Tastaturtreiber
  - Treiber für Datei-als-Volume
  - UMBus-Stamm-Busenumerator
  - UMBusenumerator
  - VMware VMCI Bus Device (driver 9.5.10.0)
  - VMware VMCI Host Device (driver 9.5.10.0)
  - Volume-Verwaltung
+ Universal Serial Bus controllers
  - Generic USB Hub
  - Standard PCI-zu-USB erweiterter Hostcontroller
  - Standard PCI-zu-USB universeller Hostcontroller
  - USB-Root-Hub
  - USB-Root-Hub

cpu registers:
eax = 08ae0022
ebx = 08aec320
ecx = 0018f95c
edx = 00000000
esi = 00000004
edi = 0b6b9200
eip = 00eee89d
esp = 0018f970
ebp = 0018f9c4

stack dump:
0018f970  20 c3 ae 08 30 eb ee 00 - c4 f9 18 00 00 92 6b 0b   ...0.........k.
0018f980  04 00 00 00 20 c3 ae 08 - 20 c3 ae 08 c3 02 f0 00  .... ... .......
0018f990  ec f9 18 00 fc 27 9e 06 - 00 00 00 00 ec 27 9e 06  .....'.......'..
0018f9a0  58 27 9e 06 5c 27 9e 06 - ec 27 9e 06 55 01 00 00  X'..\'...'..U...
0018f9b0  42 00 00 00 06 00 00 00 - 37 02 f0 00 ec f9 18 00  B.......7.......
0018f9c0  02 00 00 00 f4 f9 18 00 - 49 09 f0 00 f4 f9 18 00  ........I.......
0018f9d0  58 27 9e 06 18 fa 18 00 - 44 fa 18 00 15 00 00 00  X'......D.......
0018f9e0  06 00 00 00 95 02 00 00 - 7f 00 00 00 42 00 00 01  ............B...
0018f9f0  90 24 9e 06 18 fa 18 00 - 8a 28 ec 00 01 00 00 00  .$.......(......
0018fa00  28 fd 18 00 4c 08 42 01 - 00 00 00 00 00 00 00 00  (...L.B.........
0018fa10  aa 02 00 00 85 00 00 00 - 48 fa 18 00 3e 29 ec 00  ........H...>)..
0018fa20  48 fa 18 00 70 fa 18 00 - f3 b3 40 00 48 fa 18 00  H...p.....@.H...
0018fa30  01 00 00 00 28 fd 18 00 - 4c 08 42 01 50 fa 18 00  ....(...L.B.P...
0018fa40  40 40 fb 0c 90 24 9e 06 - 90 fa 18 00 3b 25 ec 00  @@...$......;%..
0018fa50  00 00 00 00 00 00 00 00 - aa 02 00 00 85 00 00 00  ................
0018fa60  90 24 9e 06 d9 29 ec 00 - 66 20 01 3e 39 20 5d 00  .$...)..f .>9 ].
0018fa70  7c fa 18 00 14 b2 40 00 - 90 fa 18 00 98 fa 18 00  |.....@.........
0018fa80  14 b2 40 00 90 fa 18 00 - 28 fd 18 00 90 24 9e 06  ..@.....(....$..
0018fa90  00 fb 18 00 cb c3 5c 00 - f8 fc 18 00 14 b2 40 00  ......\.......@.
0018faa0  00 fb 18 00 01 00 00 00 - 28 fd 18 00 28 fd 18 00  ........(...(...

disassembling:
[...]
01776691      mov     eax, [eax]
01776693      mov     edx, [$15a17e8]
01776699      call    -$10b644e ($6c0250)    ; Vcl.Forms.TApplication.CreateForm
0177669e 76   mov     eax, [$179fe68]
017766a3      mov     eax, [eax]
017766a5    > call    -$10b62f6 ($6c03b4)    ; Vcl.Forms.TApplication.Run
017766aa 77   call    -$136ac8f ($40ba20)    ; System.@Halt0

##################################################################################################
Regards
Gerhard Sachs

gerhardsachs
Newbie
Newbie
Posts: 10
Joined: Thu Mar 13, 2014 12:00 am

Re: Floating point error

Post by gerhardsachs » Fri May 09, 2014 9:43 am

When the following is commented out, the floating point error is gone.
Chart.LeftAxis.Automatic := true

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Floating point error

Post by Yeray » Fri May 09, 2014 10:56 am

Hi Gerhard,
gerhardsachs wrote:in my application a teechart is place on a frame. Multiple instances of this frame are placed on a vcl form dynamically.
The charts are placed and initialized on the forms constructor.
Later the charts get their xy values, axes are scaled either manually or automatic and so on.
Sometimes I get an error which can not be tracked down to a certain location.
The stack dump shows that something internal at the teechart goes wrong.
We'd need a simple example project we can run as-is to reproduce the problem here so we can check if there's a bug on the library.
gerhardsachs wrote:Teechart is Pro2014.10.140220 32Bit VCL.
A similar problem has been reported by a customer with an earlier version of the software.
So it is very likely a problem that is not dependent on the particular teechart version.
What other customer? Can you post here the link to that discussion?
gerhardsachs wrote:When the following is commented out, the floating point error is gone.
Chart.LeftAxis.Automatic := true
I guess this "workaround" isn't giving the result you desire, is it?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

gerhardsachs
Newbie
Newbie
Posts: 10
Joined: Thu Mar 13, 2014 12:00 am

Re: Floating point error

Post by gerhardsachs » Fri May 09, 2014 1:22 pm

Hi Yeray,

my application is a rather big Project, it is not easy to pull parts out.
You expect me to invest a substantial amount of time to an example without knowing if the Problem shows up there.
Time that I do not have, sorry.
I think I already gave you a lot of Information, more is currently not possible.

The customer I am talking about is my and not your customer, they have nothing to do with Teechart.
It is a big car maker where the machine where my application is running works in a production line.
It is not practical to get detailled Information from them, they simply told me that sometimes a Floating Point error occurs at the time when the Charts are redrawn.

My workarount is indeed not a practical solution.
I think the solution with the least effort is to scale the Chart by myself.

Regards
Gerhard Sachs

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Floating point error

Post by Yeray » Fri May 09, 2014 2:53 pm

Hi Gerhard,
gerhardsachs wrote:My workarount is indeed not a practical solution.
I think the solution with the least effort is to scale the Chart by myself.
The problem may be that you could be setting an incorrect axis scale. Note the maximum has always to be bigger that the minimum.
I understand the difficulty you have to extract the problematic from the final application, but please understand it's also difficult for us to guess what the problem could come from without an application to debug.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

gerhardsachs
Newbie
Newbie
Posts: 10
Joined: Thu Mar 13, 2014 12:00 am

Re: Floating point error

Post by gerhardsachs » Fri May 09, 2014 4:43 pm

Hi Yeray,

I already had problems with axis scaling when Setting min and max values separately.
This is the reason why I use only the SetMinMax function, I never had problems with it.
But in the current Situation I tell TeeChart to scale the Y axis by itself.
This works well in most cases but not always.
I have no influence on how TeeChart does this internal scaling.
It seems that TeeChart does not check the numbers before using them for scaling.
Probably one of the numbers is +NAN or -NAN.
You should check them before trying to scale and if one or both are suspect then do NOT scale.
Scaling will be unsuccessfull in such cases anyway.
In manual scaling an error message may be a debug aid, in automatic scaling it is useless.

Regards
Gerhard Sachs

Yeray
Site Admin
Site Admin
Posts: 9612
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Floating point error

Post by Yeray » Mon May 12, 2014 8:56 am

Hi Gerhard,
gerhardsachs wrote:I already had problems with axis scaling when Setting min and max values separately.
This is the reason why I use only the SetMinMax function, I never had problems with it.
Indeed SetMinMax checks what parameter is the biggest and sets minimum and maximum properties accordingly.
gerhardsachs wrote:But in the current Situation I tell TeeChart to scale the Y axis by itself.
This works well in most cases but not always.
I have no influence on how TeeChart does this internal scaling.
It seems that TeeChart does not check the numbers before using them for scaling.
Probably one of the numbers is +NAN or -NAN.
You should check them before trying to scale and if one or both are suspect then do NOT scale.
Scaling will be unsuccessfull in such cases anyway.
In manual scaling an error message may be a debug aid, in automatic scaling it is useless.
We don't like to manipulate the given data because some customers may prefer the NANs to be considered as "zero", other would want to consider it as "null", other as a predefined value, etc etc etc. That's why we prefer giving the responsibility to manipulate/adjust the data to the developer.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

Post Reply