Page 1 of 1

Tcbrowse and a random "Bound error: array access"

Posted: Tue May 13, 2008 4:54 pm
by Marco Turco
Hi,
some customers reported me that a bound error (tcbrowse related as you can see) appairs in a random mode.

Any ideas ?
I'm working with the last FWH version, xHarbour and BCC.

Thanks in advance.


Application
===========
Path and name: F:\CONDOMINIO PIGC\pigc.exe (32 bits)
Size: 7,536,936 bytes
Time from start: 2 hours 49 mins 17 secs
Error occurred at: 27/04/08, 22:45:49
Error description: Error BASE/1132 Bound error: array access
Args:
[ 1] = A { ... }
[ 2] = N 0

Stack Calls
===========
Called from: TCBROWSE.PRG => TCBROWSE:LDBLCLICK(906)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.PRG => TCBROWSE:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: MODSCR04.PRG => DLLSCR6(726)
Called from: MODSCR01.PRG => DLLSCR(33)
Called from: FILE01.PRG => FILE01(161)
Called from: MODSPIN.PRG => MODSPIN2(234)
Called from: MODSCR13.PRG => (b)DLLSCR15(2197)
Called from: BUTTON.PRG => TBUTTON:CLICK(0)
Called from: CONTROL.PRG => TBUTTON:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => SENDMESSAGE(0)
Called from: DIALOG.PRG => TDIALOG:COMMAND(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: MODSCR13.PRG => DLLSCR15(2217)
Called from: MODSCR01.PRG => DLLSCR(51)
Called from: MODSPGE.PRG => CAP(79)
Called from: MOD110.PRG => SELECTCON(147)
Called from: MODSCR01.PRG => (b)DLLSCR1(1195)
Called from: TCBROWSE.PRG => TCBROWSE:LDBLCLICK(923)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.PRG => TCBROWSE:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: MODSCR01.PRG => DLLSCR1(1255)
Called from: MODSCR01.PRG => DLLSCR(23)
Called from: MOD110.PRG => MOD110(102)
Called from: MOD0.PRG => (b)BUILDMENU(594)
Called from: MENU.PRG => TMENU:COMMAND(0)
Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
Called from: MDIFRAME.PRG => TMDIFRAME:COMMAND(0)
Called from: => TMDIFRAME:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
Called from: MOD0.PRG => MOD0(277)
Called from: PIGC.PRG => START(740)

System
======
CPU type: Intel(R) Pentium(R) 4 CPU 2.00GHz 2000 Mhz
Hardware memory: 512 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 1.1.0 Intl. (SimpLex)
Windows version: 5.1, Build 2600 Service Pack 2

Windows total applications running: 33
1 M
2 Default IME
3
4 Menu Avvio
5 SysFader
6 CiceroUIWndFrame
7 DetailsForm
8 Spyware Terminator - Avviso!
9 TF_FloatingLangBar_WndTitle
10 AVG E-mail Scanner
11 Seleziona le unità immobiliari
12 Modifica di un gruppo di spesa esistente/ Inserimento spese personali
13 Bilancio consuntivo
14 PROCEDURA INTEGRATA GESTIONE CONDOMINIO 2008
15 Risultati ricerca
16 Acrobat IEHelper
17 BTW Stack Server
18 Connections Tray
19 AVG Free Edition - Control Center
20 Elenco delle azioni
21 Misuratore alimentazione
22 MS_WebcheckMonitor
23 MCI command handling window
24 Spyware Terminator Real-Time Shield
25 Spyware Terminator Realtime Shield
26 LXBKBMON
27 LXBKBMGR
28 lxbk POR Monitor
29 LEXLMPM
30 AVGEMC
31 LexPPS BCE Comm Window
32 BTTrayMainWindow
33 Program Manager

Variables in use
================
Procedure Type Value
==========================
TCBROWSE:LDBLCLICK
Param 1: N 362
Param 2: N 0
Param 3: N 1
Local 1: O Class: TCBROWSE
Local 2: N 21
Local 3: N 0
Local 4: U
Local 5: L .F.
Local 6: U
Local 7: A Len: 6
Local 8: N 0
Local 9: U
Local 10: N 0
TWINDOW:HANDLEEVENT
Param 1: N 515
Param 2: N 1
Param 3: N 23724032
TCBROWSE:HANDLEEVENT
Param 1: N 515
Param 2: N 1
Param 3: N 23724032
Local 1: O Class: TCBROWSE
_FWH
Param 1: N 23724032
Param 2: N 515
Param 3: N 1
Param 4: N 23724032
Param 5: N 50
Local 1: O Class: TCBROWSE
DIALOGBOX
Param 1: N 4194304
Param 2: C "DIALOG_61"
Param 3: N 10158962
Param 4: O Class: TDIALOG
TDIALOG:ACTIVATE
Param 1: U
Param 2: U
Param 3: U
Param 4: L .F.
Param 5: U
Param 6: L .T.
Param 7: B {|| ... }
Param 8: U
Param 9: U
Param 10: L .T.
Local 1: O Class: TDIALOG
Local 2: N 10158962
Local 3: U
Local 4: U
Local 5: U
Local 6: O Class: TDIALOG
DLLSCR6
DLLSCR
Param 1: N 181
FILE01
Param 1: N 7
Local 1: U
Local 2: U
Local 3: U
Local 4: U
Local 5: U
Local 6: U
MODSPIN2
Param 1: N 2
Param 2: N 1
(b)DLLSCR15
TBUTTON:CLICK
Local 1: O Class: TBUTTON
TBUTTON:HANDLEEVENT
Param 1: N 2048
Param 2: N 0
Param 3: N 0
Local 1: O Class: TBUTTON
_FWH
Param 1: N 0
Param 2: N 2048
Param 3: N 0
Param 4: N 0
Param 5: N 44
Local 1: O Class: TBUTTON
SENDMESSAGE
Param 1: N 10683080
Param 2: N 2048
Param 3: N 0
Param 4: N 0
TDIALOG:COMMAND
Param 1: N 112
Param 2: N 10683080
Local 1: O Class: TDIALOG
Local 2: O Class: TBUTTON
Local 3: N 0
Local 4: N 112
Local 5: N 10683080
TWINDOW:HANDLEEVENT
Param 1: N 273
Param 2: N 112
Param 3: N 10683080
TDIALOG:HANDLEEVENT
Param 1: N 273
Param 2: N 112
Param 3: N 10683080
Local 1: O Class: TDIALOG
DIALOGBOX
Param 1: N 4194304
Param 2: C "DIALOG_567"
Param 3: N 3933066
Param 4: O Class: TDIALOG
TDIALOG:ACTIVATE
Param 1: U
Param 2: U
Param 3: U
Param 4: L .F.
Param 5: U
Param 6: L .T.
Param 7: U
Param 8: U
Param 9: U
Param 10: L .T.
Local 1: O Class: TDIALOG
Local 2: N 3933066
Local 3: U
Local 4: U
Local 5: U
Local 6: O Class: TDIALOG
DLLSCR15
DLLSCR
Param 1: N 448
CAP
Param 1: N 2
Local 1: U
SELECTCON
(b)DLLSCR1
Param 1: N 58
Param 2: N 526
Param 3: N 1
TCBROWSE:LDBLCLICK
Param 1: N 58
Param 2: N 526
Param 3: N 1
Local 1: O Class: TCBROWSE
Local 2: N 3
Local 3: N 2
Local 4: U
TWINDOW:HANDLEEVENT
Param 1: N 515
Param 2: N 1
Param 3: N 3801614
TCBROWSE:HANDLEEVENT
Param 1: N 515
Param 2: N 1
Param 3: N 3801614
Local 1: O Class: TCBROWSE
_FWH
Param 1: N 3801614
Param 2: N 515
Param 3: N 1
Param 4: N 3801614
Param 5: N 32
Local 1: O Class: TCBROWSE
DIALOGBOX
Param 1: N 4194304
Param 2: C "DIALOG_19"
Param 3: N 1507930
Param 4: O Class: TDIALOG
TDIALOG:ACTIVATE
Param 1: U
Param 2: U
Param 3: U
Param 4: L .F.
Param 5: U
Param 6: L .T.
Param 7: B {|| ... }
Param 8: U
Param 9: U
Param 10: L .T.
Local 1: O Class: TDIALOG
Local 2: N 1507930
Local 3: U
Local 4: U
Local 5: U
Local 6: O Class: TDIALOG
DLLSCR1
DLLSCR
Param 1: N 28
MOD110
(b)BUILDMENU
Param 1: O Class: TMENUITEM
TMENU:COMMAND
Param 1: N 20032
Local 1: O Class: TMENU
Local 2: O Class: TMENUITEM
TWINDOW:COMMAND
Param 1: N 20032
Param 2: N 0
Local 1: O Class: TMDIFRAME
Local 2: N 0
Local 3: N 20032
Local 4: N 0
TMDIFRAME:COMMAND
Param 1: N 20032
Param 2: N 0
Local 1: O Class: TMDIFRAME
Local 2: L .F.
TMDIFRAME:HANDLEEVENT
Param 1: N 273
Param 2: N 20032
Param 3: N 0
_FWH
Param 1: N 0
Param 2: N 273
Param 3: N 20032
Param 4: N 0
Param 5: N 1
Local 1: O Class: TMDIFRAME
WINRUN
Param 1: N 1507930
TMDIFRAME:ACTIVATE
Param 1: C "MAXIMIZED"
Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: B {|| ... }
Param 7: U
Param 8: B {|| ... }
Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... }
Param 18: U
Param 19: U
Local 1: O Class: TMDIFRAME
Local 2: U
Local 3: U
MOD0
Local 1: C "PROCEDURA INTEGRATA GESTIONE CONDOMINIO 2008"
START
Local 1: U
Local 2: U
Local 3: U
Local 4: U

Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFNTX

DataBases in use
================

Classes in use:
===============
1 HASHENTRY
2 HBCLASS
3 HBOBJECT
4 TMUTEX
5 TPRINTER
6 TSYSTEMINFO
7 TSTRUCT
8 TREG32
9 TFONT
10 TWINDOW
11 TMDIFRAME
12 TMENU
13 TMENUITEM
14 TCONTROL
15 TICON
16 TBRUSH
17 TMDICLIENT
18 TBAR
19 TRECT
20 TBTNBMP
21 TMSGBAR
22 TMSGITEM
23 TDIALOG
24 TBITMAP
25 TSAY
26 TURLLINK
27 TCURSOR
28 TBUTTON
29 TGET
30 GET
31 TCLIPGET
32 TMULTIGET
33 TCHECKBOX
34 TRADMENU
35 TRADIO
36 TCOMBOBOX
37 TSCROLLBAR
38 TPROGRESS
39 TWBROWSE
40 TCBROWSE
41 TCCOLUMN
42 TFOLDER
43 TBUTTONBMP
44 TCOMBOLIST
45 TSBROWSE
46 ERROR
47 TSBSCRLBAR
48 TSCOLUMN
49 TXBROWSE
50 TXBRWCOLUMN
51 TIMAGE

Memory Analysis
===============
486 Static variables

Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes

Posted: Tue May 13, 2008 6:27 pm
by James Bott
Marco,

Assuming you are not browsing an array, it looks like it is the aColumns array that is crashing. If you look at the lDblClick() method you will see this line:

if ::aColumns[ nCol := ::nAtCol( nColPix ) ]:lEdit .and. ::lAutoEdit

Your error message seems to be indicating that nCol is zero. So when the program gets to this line:

Eval( ::aColumns[ nCol ]:bData, uTemp )

It crashes. Of course, ::nAtCol( nColPix) shouldn't ever be zero.

I am using FWH 8.03 and the above line is line 905 which is one line different than your error message. So, I assume that there has been a change in the class in your version 8.04. You might try doing a file compare to see if you can find the change between the classes in the two versions.

Regards,
James

Posted: Wed May 14, 2008 10:12 am
by Antonio Linares
Marco,

You may modify that line this way:

if ( ( nCol := ::nAtCol( nColPix ) ) != 0 .and. ::aColumns[ nCol ]:lEdit .and. ::lAutoEdit

Posted: Thu May 15, 2008 10:44 am
by Marco Turco
Trying... Thanks.