Author | Topic: Random Crash on xBase Hybrid. | |
---|---|---|
Marcelo | Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 16:12:34 -0400 Hi Guys, I'm finding this one really strange and its driving me crazy. I have a few applications currently deployed with xBase, but one of them I'm stuck since I cannot find out what is wrong with it. The application randomly crashes (just closes with no error.) When I run it in debug mode, i get an Exit Return 5. What does that mean? There is no specific place for it to crash, and if I go to the same place it crashed before, it wont necessarly crash again. I know it must be something really simple i'm not doing but I can't figure out what it is. Anyone with an idea? Thanks, Marcelo | |
Marcelo | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 16:16:49 -0400 One thing to add. The FATAL.LOG FATAL ERROR LOG System-Error SYS Thread-ID: 500 Module: MOM Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 Call Stack of Thread 1 (500): NET_USE(94) V_OPEN(1319) OPEN_USE(678) SECUR_VERIF(865) INTERMU(235) PMSMENU(248) PMS(201) MAIN(112) Call Stack of Thread 2 (680): File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe TimeStamp: 20060929 16:04 End of FATAL ERROR LOG. I have no clue (besides the callstack) what does that log has. anyone ? "Marcelo" <mramos@caisoftdesign.ca> wrote in message news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... > Hi Guys, > > I'm finding this one really strange and its driving me crazy. > I have a few applications currently deployed with xBase, but one of > them I'm stuck since I cannot find out what is wrong with it. > > The application randomly crashes (just closes with no error.) When I > run it in debug mode, i get an Exit Return 5. What does that mean? > There is no specific place for it to crash, and if I go to the same > place it crashed before, it wont necessarly crash again. > > I know it must be something really simple i'm not doing but I can't > figure out what it is. > > Anyone with an idea? > > Thanks, > Marcelo > > | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 13:25:54 -0700 It appears to be failing after line 94 in your NET_USE() function. What does the code of that function look like? Does it check for error conditions or just try to open a database and potentially cause an erro because it assumes that the dbf has been opened and tries to read from it? IOW, how robust is the error testing/correction within the NET_USE() function? -Joe Marcelo wrote: > One thing to add. The FATAL.LOG > > FATAL ERROR LOG > System-Error > SYS Thread-ID: 500 > Module: MOM > Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 > Call Stack of Thread 1 (500): > NET_USE(94) > V_OPEN(1319) > OPEN_USE(678) > SECUR_VERIF(865) > INTERMU(235) > PMSMENU(248) > PMS(201) > MAIN(112) > Call Stack of Thread 2 (680): > File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe > TimeStamp: 20060929 16:04 > End of FATAL ERROR LOG. > > I have no clue (besides the callstack) what does that log has. anyone ? > > > "Marcelo" <mramos@caisoftdesign.ca> wrote in message > news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... > >>Hi Guys, >> >> I'm finding this one really strange and its driving me crazy. >> I have a few applications currently deployed with xBase, but one of >>them I'm stuck since I cannot find out what is wrong with it. >> >> The application randomly crashes (just closes with no error.) When I >>run it in debug mode, i get an Exit Return 5. What does that mean? >> There is no specific place for it to crash, and if I go to the same >>place it crashed before, it wont necessarly crash again. >> >> I know it must be something really simple i'm not doing but I can't >>figure out what it is. >> >>Anyone with an idea? >> >>Thanks, >>Marcelo >> >> > > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 19:20:09 -0400 Hi Joe, the net_use is that very old function created for clipper network opens, with very little if any changes at all. I will ask you the same question as I did to James (which also answered this thread). Shouldn't it give me a message saying thats a problem with opening the file or something? why does it just closes? Thanks! Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:7723bda5$66942446$d21ea@news.alaska-software.com... > It appears to be failing after line 94 in your NET_USE() function. What > does the code of that function look like? Does it check for error > conditions or just try to open a database and potentially cause an erro > because it assumes that the dbf has been opened and tries to read from it? > > IOW, how robust is the error testing/correction within the NET_USE() > function? > > -Joe > > Marcelo wrote: >> One thing to add. The FATAL.LOG >> >> FATAL ERROR LOG >> System-Error >> SYS Thread-ID: 500 >> Module: MOM >> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >> Call Stack of Thread 1 (500): >> NET_USE(94) >> V_OPEN(1319) >> OPEN_USE(678) >> SECUR_VERIF(865) >> INTERMU(235) >> PMSMENU(248) >> PMS(201) >> MAIN(112) >> Call Stack of Thread 2 (680): >> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >> TimeStamp: 20060929 16:04 >> End of FATAL ERROR LOG. >> >> I have no clue (besides the callstack) what does that log has. anyone ? >> >> >> "Marcelo" <mramos@caisoftdesign.ca> wrote in message >> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >> >>>Hi Guys, >>> >>> I'm finding this one really strange and its driving me crazy. >>> I have a few applications currently deployed with xBase, but one of >>> them I'm stuck since I cannot find out what is wrong with it. >>> >>> The application randomly crashes (just closes with no error.) When I >>> run it in debug mode, i get an Exit Return 5. What does that mean? >>> There is no specific place for it to crash, and if I go to the same >>> place it crashed before, it wont necessarly crash again. >>> >>> I know it must be something really simple i'm not doing but I can't >>> figure out what it is. >>> >>>Anyone with an idea? >>> >>>Thanks, >>>Marcelo >>> >>> >> >> | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 16:25:21 -0700 Hi Marcelo, It did give you a message. As Jim said, it's a DOS Error. The question is: "What caused it?" If you can show us the code we might be able to help - otherwise, there's nothing we can do. The default Xbase++ ErrorSys() is fairly non-specific but you can modify that or you can put in-line checking in your code to check for various possible conditions and prevent them from occuring. -Joe Marcelo wrote: > Hi Joe, > > the net_use is that very old function created for clipper network opens, > with very little if any changes at all. > I will ask you the same question as I did to James (which also answered > this thread). Shouldn't it give me a message > saying thats a problem with opening the file or something? why does it just > closes? > > Thanks! > Marcelo > > "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message > news:7723bda5$66942446$d21ea@news.alaska-software.com... > >>It appears to be failing after line 94 in your NET_USE() function. What >>does the code of that function look like? Does it check for error >>conditions or just try to open a database and potentially cause an erro >>because it assumes that the dbf has been opened and tries to read from it? >> >>IOW, how robust is the error testing/correction within the NET_USE() >>function? >> >>-Joe >> >>Marcelo wrote: >> >>>One thing to add. The FATAL.LOG >>> >>>FATAL ERROR LOG >>>System-Error >>>SYS Thread-ID: 500 >>>Module: MOM >>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>>Call Stack of Thread 1 (500): >>>NET_USE(94) >>>V_OPEN(1319) >>>OPEN_USE(678) >>>SECUR_VERIF(865) >>>INTERMU(235) >>>PMSMENU(248) >>>PMS(201) >>>MAIN(112) >>>Call Stack of Thread 2 (680): >>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>>TimeStamp: 20060929 16:04 >>>End of FATAL ERROR LOG. >>> >>>I have no clue (besides the callstack) what does that log has. anyone ? >>> >>> >>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message >>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>> >>> >>>>Hi Guys, >>>> >>>> I'm finding this one really strange and its driving me crazy. >>>> I have a few applications currently deployed with xBase, but one of >>>>them I'm stuck since I cannot find out what is wrong with it. >>>> >>>> The application randomly crashes (just closes with no error.) When I >>>>run it in debug mode, i get an Exit Return 5. What does that mean? >>>> There is no specific place for it to crash, and if I go to the same >>>>place it crashed before, it wont necessarly crash again. >>>> >>>> I know it must be something really simple i'm not doing but I can't >>>>figure out what it is. >>>> >>>>Anyone with an idea? >>>> >>>>Thanks, >>>>Marcelo >>>> >>>> >>> >>> > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 09:28:26 -0400 Okay Joe, I posted the entire code on James thread side. Thanks a lot! Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:5bc2268b$6d611465$d20ea@news.alaska-software.com... > Hi Marcelo, > > It did give you a message. As Jim said, it's a DOS Error. The question > is: "What caused it?" If you can show us the code we might be able to > help - otherwise, there's nothing we can do. > > The default Xbase++ ErrorSys() is fairly non-specific but you can modify > that or you can put in-line checking in your code to check for various > possible conditions and prevent them from occuring. > > -Joe > > Marcelo wrote: >> Hi Joe, >> >> the net_use is that very old function created for clipper network >> opens, with very little if any changes at all. >> I will ask you the same question as I did to James (which also >> answered this thread). Shouldn't it give me a message >> saying thats a problem with opening the file or something? why does it >> just closes? >> >> Thanks! >> Marcelo >> >> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message >> news:7723bda5$66942446$d21ea@news.alaska-software.com... >> >>>It appears to be failing after line 94 in your NET_USE() function. What >>>does the code of that function look like? Does it check for error >>>conditions or just try to open a database and potentially cause an erro >>>because it assumes that the dbf has been opened and tries to read from >>>it? >>> >>>IOW, how robust is the error testing/correction within the NET_USE() >>>function? >>> >>>-Joe >>> >>>Marcelo wrote: >>> >>>>One thing to add. The FATAL.LOG >>>> >>>>FATAL ERROR LOG >>>>System-Error >>>>SYS Thread-ID: 500 >>>>Module: MOM >>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>>>Call Stack of Thread 1 (500): >>>>NET_USE(94) >>>>V_OPEN(1319) >>>>OPEN_USE(678) >>>>SECUR_VERIF(865) >>>>INTERMU(235) >>>>PMSMENU(248) >>>>PMS(201) >>>>MAIN(112) >>>>Call Stack of Thread 2 (680): >>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>>>TimeStamp: 20060929 16:04 >>>>End of FATAL ERROR LOG. >>>> >>>>I have no clue (besides the callstack) what does that log has. anyone ? >>>> >>>> >>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message >>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>>> >>>> >>>>>Hi Guys, >>>>> >>>>> I'm finding this one really strange and its driving me crazy. >>>>> I have a few applications currently deployed with xBase, but one of >>>>> them I'm stuck since I cannot find out what is wrong with it. >>>>> >>>>> The application randomly crashes (just closes with no error.) When I >>>>> run it in debug mode, i get an Exit Return 5. What does that mean? >>>>> There is no specific place for it to crash, and if I go to the same >>>>> place it crashed before, it wont necessarly crash again. >>>>> >>>>> I know it must be something really simple i'm not doing but I can't >>>>> figure out what it is. >>>>> >>>>>Anyone with an idea? >>>>> >>>>>Thanks, >>>>>Marcelo >>>>> >>>>> >>>> >>>> >> | |
James Loughner | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 16:28:52 -0400 OS (DOS) error 5 is "access denied" most likely you are trying to open a locked file shared and not testing net error or other access problems like lack of rights etc. Good luck Jim Marcelo wrote: > One thing to add. The FATAL.LOG > > FATAL ERROR LOG > System-Error > SYS Thread-ID: 500 > Module: MOM > Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 > Call Stack of Thread 1 (500): > NET_USE(94) > V_OPEN(1319) > OPEN_USE(678) > SECUR_VERIF(865) > INTERMU(235) > PMSMENU(248) > PMS(201) > MAIN(112) > Call Stack of Thread 2 (680): > File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe > TimeStamp: 20060929 16:04 > End of FATAL ERROR LOG. > > I have no clue (besides the callstack) what does that log has. anyone ? > > > "Marcelo" <mramos@caisoftdesign.ca> wrote in message > news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >> Hi Guys, >> >> I'm finding this one really strange and its driving me crazy. >> I have a few applications currently deployed with xBase, but one of >> them I'm stuck since I cannot find out what is wrong with it. >> >> The application randomly crashes (just closes with no error.) When I >> run it in debug mode, i get an Exit Return 5. What does that mean? >> There is no specific place for it to crash, and if I go to the same >> place it crashed before, it wont necessarly crash again. >> >> I know it must be something really simple i'm not doing but I can't >> figure out what it is. >> >> Anyone with an idea? >> >> Thanks, >> Marcelo >> >> > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 19:17:57 -0400 Hi Joe, I will check up on the Access denied problem. But I still have a question. WHY it just crashes with no message? Shouldn't it give me an message on that case? Thanks, Marcelo "James Loughner" <jwrl@charter.net> wrote in message news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com... > OS (DOS) error 5 is "access denied" most likely you are trying to open a > locked file shared and not testing net error or other access problems > like lack of rights etc. > > Good luck > Jim > > > > > Marcelo wrote: >> One thing to add. The FATAL.LOG >> >> FATAL ERROR LOG >> System-Error >> SYS Thread-ID: 500 >> Module: MOM >> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >> Call Stack of Thread 1 (500): >> NET_USE(94) >> V_OPEN(1319) >> OPEN_USE(678) >> SECUR_VERIF(865) >> INTERMU(235) >> PMSMENU(248) >> PMS(201) >> MAIN(112) >> Call Stack of Thread 2 (680): >> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >> TimeStamp: 20060929 16:04 >> End of FATAL ERROR LOG. >> >> I have no clue (besides the callstack) what does that log has. anyone ? >> >> >> "Marcelo" <mramos@caisoftdesign.ca> wrote in message >> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>> Hi Guys, >>> >>> I'm finding this one really strange and its driving me crazy. >>> I have a few applications currently deployed with xBase, but one of >>> them I'm stuck since I cannot find out what is wrong with it. >>> >>> The application randomly crashes (just closes with no error.) When I >>> run it in debug mode, i get an Exit Return 5. What does that mean? >>> There is no specific place for it to crash, and if I go to the same >>> place it crashed before, it wont necessarly crash again. >>> >>> I know it must be something really simple i'm not doing but I can't >>> figure out what it is. >>> >>> Anyone with an idea? >>> >>> Thanks, >>> Marcelo >>> >>> >> >> | |
James Loughner | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 23:17:47 -0400 exactly what is line NET_USE(94) also some lines around it Jim Marcelo wrote: > Hi Joe, > > I will check up on the Access denied problem. But I still have a > question. WHY it just crashes with no message? Shouldn't it give me an > message on that case? > > Thanks, > Marcelo > > > "James Loughner" <jwrl@charter.net> wrote in message > news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com... >> OS (DOS) error 5 is "access denied" most likely you are trying to open a >> locked file shared and not testing net error or other access problems >> like lack of rights etc. >> >> Good luck >> Jim >> >> >> >> >> Marcelo wrote: >>> One thing to add. The FATAL.LOG >>> >>> FATAL ERROR LOG >>> System-Error >>> SYS Thread-ID: 500 >>> Module: MOM >>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>> Call Stack of Thread 1 (500): >>> NET_USE(94) >>> V_OPEN(1319) >>> OPEN_USE(678) >>> SECUR_VERIF(865) >>> INTERMU(235) >>> PMSMENU(248) >>> PMS(201) >>> MAIN(112) >>> Call Stack of Thread 2 (680): >>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>> TimeStamp: 20060929 16:04 >>> End of FATAL ERROR LOG. >>> >>> I have no clue (besides the callstack) what does that log has. anyone ? >>> >>> >>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message >>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>>> Hi Guys, >>>> >>>> I'm finding this one really strange and its driving me crazy. >>>> I have a few applications currently deployed with xBase, but one of >>>> them I'm stuck since I cannot find out what is wrong with it. >>>> >>>> The application randomly crashes (just closes with no error.) When I >>>> run it in debug mode, i get an Exit Return 5. What does that mean? >>>> There is no specific place for it to crash, and if I go to the same >>>> place it crashed before, it wont necessarly crash again. >>>> >>>> I know it must be something really simple i'm not doing but I can't >>>> figure out what it is. >>>> >>>> Anyone with an idea? >>>> >>>> Thanks, >>>> Marcelo >>>> >>>> >>> > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 09:27:51 -0400 Hi Guys, Here is my netuse function. FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) local forever := (wait = 0) local cIndex := file+indexext() cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) IF !Empty(cLocDbf) Set Default To &(cLocDbf) CurDir(cLocDbf) ENDIF DO WHILE (forever .OR. wait > 0) IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level) IF ex_use && exclusive IF empty(ali_nm) USE &file EXCLUSIVE ELSE USE &file EXCLUSIVE alias &ali_nm ENDIF ELSE && shared IF empty(ali_nm) USE &file <------------------------------------------------------- LINE 94 ELSE USE &file alias &ali_nm ENDIF ENDIF IF File(cIndex) set index to &cIndex ENDIF ELSE IF ex_use && exclusive IF empty(ali_nm) USE &file EXCLUSIVE READONLY ELSE USE &file EXCLUSIVE READONLY alias &ali_nm ENDIF ELSE && shared IF empty(ali_nm) USE &file READONLY ELSE USE &file READONLY alias &ali_nm ENDIF ENDIF ENDIF IF .NOT. NETERR() && USE succeeds RETURN (.T.) ENDIF INKEY(1) && wait 1 second wait = wait - 1 ENDDO RETURN (.F.) && USE fails I'm not sure why i'm gettin access denied on the opens... Thanks Marcelo "James Loughner" <jwrl@charter.net> wrote in message news:1149718$41ee8f98$d2018@news.alaska-software.com... > exactly what is line > > NET_USE(94) > > also some lines around it > > Jim > > Marcelo wrote: >> Hi Joe, >> >> I will check up on the Access denied problem. But I still have a >> question. WHY it just crashes with no message? Shouldn't it give me an >> message on that case? >> >> Thanks, >> Marcelo >> >> >> "James Loughner" <jwrl@charter.net> wrote in message >> news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com... >>> OS (DOS) error 5 is "access denied" most likely you are trying to open a >>> locked file shared and not testing net error or other access problems >>> like lack of rights etc. >>> >>> Good luck >>> Jim >>> >>> >>> >>> >>> Marcelo wrote: >>>> One thing to add. The FATAL.LOG >>>> >>>> FATAL ERROR LOG >>>> System-Error >>>> SYS Thread-ID: 500 >>>> Module: MOM >>>> Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>>> Call Stack of Thread 1 (500): >>>> NET_USE(94) >>>> V_OPEN(1319) >>>> OPEN_USE(678) >>>> SECUR_VERIF(865) >>>> INTERMU(235) >>>> PMSMENU(248) >>>> PMS(201) >>>> MAIN(112) >>>> Call Stack of Thread 2 (680): >>>> File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>>> TimeStamp: 20060929 16:04 >>>> End of FATAL ERROR LOG. >>>> >>>> I have no clue (besides the callstack) what does that log has. anyone ? >>>> >>>> >>>> "Marcelo" <mramos@caisoftdesign.ca> wrote in message >>>> news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>>>> Hi Guys, >>>>> >>>>> I'm finding this one really strange and its driving me crazy. >>>>> I have a few applications currently deployed with xBase, but one of >>>>> them I'm stuck since I cannot find out what is wrong with it. >>>>> >>>>> The application randomly crashes (just closes with no error.) When >>>>> I >>>>> run it in debug mode, i get an Exit Return 5. What does that mean? >>>>> There is no specific place for it to crash, and if I go to the same >>>>> place it crashed before, it wont necessarly crash again. >>>>> >>>>> I know it must be something really simple i'm not doing but I can't >>>>> figure out what it is. >>>>> >>>>> Anyone with an idea? >>>>> >>>>> Thanks, >>>>> Marcelo >>>>> >>>>> >>>> >> >> | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 07:40:31 -0700 Hi Marcelo, I do not see any check to see if the file actually exists. The neterr() function should catch the other conditions, but if the file doesn't exist, the use command will fail. I don't know if this is what's happening in your app, but I know that I always check for the existence of the file first. -Joe Marcelo wrote: > Hi Guys, > > Here is my netuse function. > > FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) > local forever := (wait = 0) > local cIndex := file+indexext() > > cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) > cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) > cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) > > > IF !Empty(cLocDbf) > Set Default To &(cLocDbf) > CurDir(cLocDbf) > ENDIF > > > DO WHILE (forever .OR. wait > 0) > IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level) > IF ex_use && exclusive > IF empty(ali_nm) > USE &file EXCLUSIVE > ELSE > USE &file EXCLUSIVE alias &ali_nm > ENDIF > ELSE && shared > IF empty(ali_nm) > USE &file > <------------------------------------------------------- LINE 94 > ELSE > USE &file alias &ali_nm > ENDIF > ENDIF > IF File(cIndex) > set index to &cIndex > ENDIF > ELSE > IF ex_use && exclusive > IF empty(ali_nm) > USE &file EXCLUSIVE READONLY > ELSE > USE &file EXCLUSIVE READONLY alias &ali_nm > ENDIF > ELSE && shared > IF empty(ali_nm) > USE &file READONLY > ELSE > USE &file READONLY alias &ali_nm > ENDIF > ENDIF > ENDIF > > IF .NOT. NETERR() && USE succeeds > RETURN (.T.) > ENDIF > > INKEY(1) && wait 1 second > wait = wait - 1 > ENDDO > RETURN (.F.) && USE fails > > > I'm not sure why i'm gettin access denied on the opens... > > Thanks > Marcelo > > > "James Loughner" <jwrl@charter.net> wrote in message > news:1149718$41ee8f98$d2018@news.alaska-software.com... > >>exactly what is line >> >>NET_USE(94) >> >>also some lines around it >> >>Jim >> >>Marcelo wrote: >> >>>Hi Joe, >>> >>> I will check up on the Access denied problem. But I still have a >>>question. WHY it just crashes with no message? Shouldn't it give me an >>>message on that case? >>> >>>Thanks, >>>Marcelo >>> >>> >>>"James Loughner" <jwrl@charter.net> wrote in message >>>news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com... >>> >>>>OS (DOS) error 5 is "access denied" most likely you are trying to open a >>>>locked file shared and not testing net error or other access problems >>>>like lack of rights etc. >>>> >>>>Good luck >>>>Jim >>>> >>>> >>>> >>>> >>>>Marcelo wrote: >>>> >>>>>One thing to add. The FATAL.LOG >>>>> >>>>>FATAL ERROR LOG >>>>>System-Error >>>>>SYS Thread-ID: 500 >>>>>Module: MOM >>>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>>>>Call Stack of Thread 1 (500): >>>>>NET_USE(94) >>>>>V_OPEN(1319) >>>>>OPEN_USE(678) >>>>>SECUR_VERIF(865) >>>>>INTERMU(235) >>>>>PMSMENU(248) >>>>>PMS(201) >>>>>MAIN(112) >>>>>Call Stack of Thread 2 (680): >>>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>>>>TimeStamp: 20060929 16:04 >>>>>End of FATAL ERROR LOG. >>>>> >>>>>I have no clue (besides the callstack) what does that log has. anyone ? >>>>> >>>>> >>>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message >>>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>>>> >>>>>>Hi Guys, >>>>>> >>>>>> I'm finding this one really strange and its driving me crazy. >>>>>> I have a few applications currently deployed with xBase, but one of >>>>>>them I'm stuck since I cannot find out what is wrong with it. >>>>>> >>>>>> The application randomly crashes (just closes with no error.) When >>>>>>I >>>>>>run it in debug mode, i get an Exit Return 5. What does that mean? >>>>>> There is no specific place for it to crash, and if I go to the same >>>>>>place it crashed before, it wont necessarly crash again. >>>>>> >>>>>> I know it must be something really simple i'm not doing but I can't >>>>>>figure out what it is. >>>>>> >>>>>>Anyone with an idea? >>>>>> >>>>>>Thanks, >>>>>>Marcelo >>>>>> >>>>>> >>>>> >>> > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 11:44:11 -0400 Hi Joe, Yes indeed, I do not check if the file actually exists, but the files that this net_uses opens are always the same. Maybe this problem will become clearer after you check the message I left on the thread for James. I finnaly found a pattern how to reproduce and based on my pattern I think the "file not found" can be discarded from the possible list? Well anyways take a look at the full explanation on James side of the thread. Thanks, Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:6fbdc8ae$56a7f5e9$fcdbc@news.alaska-software.com... > Hi Marcelo, > > I do not see any check to see if the file actually exists. > > The neterr() function should catch the other conditions, but if the file > doesn't exist, the use command will fail. I don't know if this is what's > happening in your app, but I know that I always check for the existence of > the file first. > > -Joe > > Marcelo wrote: >> Hi Guys, >> >> Here is my netuse function. >> >> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) >> local forever := (wait = 0) >> local cIndex := file+indexext() >> >> cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) >> cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) >> cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) >> >> >> IF !Empty(cLocDbf) >> Set Default To &(cLocDbf) >> CurDir(cLocDbf) >> ENDIF >> >> >> DO WHILE (forever .OR. wait > 0) >> IF empty(min_lev) .OR. (cCurrLevel >= cMin_Level) >> IF ex_use && exclusive >> IF empty(ali_nm) >> USE &file EXCLUSIVE >> ELSE >> USE &file EXCLUSIVE alias &ali_nm >> ENDIF >> ELSE && shared >> IF empty(ali_nm) >> USE &file >> <------------------------------------------------------- LINE 94 >> ELSE >> USE &file alias &ali_nm >> ENDIF >> ENDIF >> IF File(cIndex) >> set index to &cIndex >> ENDIF >> ELSE >> IF ex_use && exclusive >> IF empty(ali_nm) >> USE &file EXCLUSIVE READONLY >> ELSE >> USE &file EXCLUSIVE READONLY alias &ali_nm >> ENDIF >> ELSE && shared >> IF empty(ali_nm) >> USE &file READONLY >> ELSE >> USE &file READONLY alias &ali_nm >> ENDIF >> ENDIF >> ENDIF >> >> IF .NOT. NETERR() && USE succeeds >> RETURN (.T.) >> ENDIF >> >> INKEY(1) && wait 1 second >> wait = wait - 1 >> ENDDO >> RETURN (.F.) && USE fails >> >> >> I'm not sure why i'm gettin access denied on the opens... >> >> Thanks >> Marcelo >> >> >> "James Loughner" <jwrl@charter.net> wrote in message >> news:1149718$41ee8f98$d2018@news.alaska-software.com... >> >>>exactly what is line >>> >>>NET_USE(94) >>> >>>also some lines around it >>> >>>Jim >>> >>>Marcelo wrote: >>> >>>>Hi Joe, >>>> >>>> I will check up on the Access denied problem. But I still have a >>>>question. WHY it just crashes with no message? Shouldn't it give me an >>>>message on that case? >>>> >>>>Thanks, >>>>Marcelo >>>> >>>> >>>>"James Loughner" <jwrl@charter.net> wrote in message >>>>news:3e6d6e0d$7e3a2bed$d21c7@news.alaska-software.com... >>>> >>>>>OS (DOS) error 5 is "access denied" most likely you are trying to open >>>>>a >>>>>locked file shared and not testing net error or other access problems >>>>>like lack of rights etc. >>>>> >>>>>Good luck >>>>>Jim >>>>> >>>>> >>>>> >>>>> >>>>>Marcelo wrote: >>>>> >>>>>>One thing to add. The FATAL.LOG >>>>>> >>>>>>FATAL ERROR LOG >>>>>>System-Error >>>>>>SYS Thread-ID: 500 >>>>>>Module: MOM >>>>>>Error Codes: EH: 4 Sub: 5(5) OS: 5 XPP: 40 >>>>>>Call Stack of Thread 1 (500): >>>>>>NET_USE(94) >>>>>>V_OPEN(1319) >>>>>>OPEN_USE(678) >>>>>>SECUR_VERIF(865) >>>>>>INTERMU(235) >>>>>>PMSMENU(248) >>>>>>PMS(201) >>>>>>MAIN(112) >>>>>>Call Stack of Thread 2 (680): >>>>>>File: C:\VSS_DOS\XBase\xPMS\xpmsnew.exe >>>>>>TimeStamp: 20060929 16:04 >>>>>>End of FATAL ERROR LOG. >>>>>> >>>>>>I have no clue (besides the callstack) what does that log has. anyone >>>>>>? >>>>>> >>>>>> >>>>>>"Marcelo" <mramos@caisoftdesign.ca> wrote in message >>>>>>news:126ffe6f$1b99cdc2$d21ee@news.alaska-software.com... >>>>>> >>>>>>>Hi Guys, >>>>>>> >>>>>>> I'm finding this one really strange and its driving me crazy. >>>>>>> I have a few applications currently deployed with xBase, but one >>>>>>> of >>>>>>>them I'm stuck since I cannot find out what is wrong with it. >>>>>>> >>>>>>> The application randomly crashes (just closes with no error.) When >>>>>>> I >>>>>>>run it in debug mode, i get an Exit Return 5. What does that mean? >>>>>>> There is no specific place for it to crash, and if I go to the >>>>>>> same >>>>>>>place it crashed before, it wont necessarly crash again. >>>>>>> >>>>>>> I know it must be something really simple i'm not doing but I >>>>>>> can't >>>>>>>figure out what it is. >>>>>>> >>>>>>>Anyone with an idea? >>>>>>> >>>>>>>Thanks, >>>>>>>Marcelo >>>>>>> >>>>>>> >>>>>> >>>> >> | |
AUGE_OHR | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 22:36:39 +0200 hi, > USE &file i did have look into my "Net_Use" to remember that there is a diffence in Xbase++ / Cl*pper : *** snip *** IF FILE(file_dbf) does files exist DO WHILE m_dauer> 0 timeout IF ex_use Exclusive #IFDEF __XPP__ Xbase++ IF lNewAlias USE (file_dbf) EXCLUSIVE ALIAS (myalias) ELSE USE (file_dbf) EXCLUSIVE ENDIF #ELSE Cl*pper IF lNewAlias USE &file_dbf EXCLUSIVE ALIAS &myalias ELSE USE &file_dbf EXCLUSIVE ENDIF #ENDIF ELSE shared #IFDEF __XPP__ Xbase++ IF lNewAlias USE (file_dbf) ALIAS (myalias) ELSE USE (file_dbf) ENDIF #ELSE Cl*pper IF lNewAlias USE &file_dbf ALIAS &myalias ELSE USE &file_dbf ENDIF #ENDIF ENDIF IF .NOT. NETERR() Error open DBF ? *** eof *** > IF File(cIndex) > DBSETINDEX(cIndex) > ENDIF > > IF .NOT. NETERR() && USE succeeds you shoud test NetErr() BEFORE setting Index > recover using objLocal > MsgBox( objLocal:description ) is objLocal:description valid ? i woud recommend asking :osCode : *** snip RECOVER USING oError If oError:osCode#0 *** eof *** greetings by OHR Jimmy | |
James Loughner | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 17:10:54 -0400 Right you can't use a macro on a local variable. Basically it is not visible to the internal compiler. You can only use a macro on a string ( like defining a codeblock) or Public/Private variables. Should have seen that earlier but I have abandoned USE statements for DBUseArea in most of my code. Jim AUGE_OHR wrote: > hi, > >> USE &file > > i did have look into my "Net_Use" to remember that there is a diffence in > Xbase++ / Cl*pper : > > *** snip *** > IF FILE(file_dbf) does files exist > DO WHILE m_dauer> 0 timeout > IF ex_use Exclusive > #IFDEF __XPP__ Xbase++ > IF lNewAlias > USE (file_dbf) EXCLUSIVE ALIAS (myalias) > ELSE > USE (file_dbf) EXCLUSIVE > ENDIF > #ELSE Cl*pper > IF lNewAlias > USE &file_dbf EXCLUSIVE ALIAS &myalias > ELSE > USE &file_dbf EXCLUSIVE > ENDIF > #ENDIF > ELSE shared > #IFDEF __XPP__ Xbase++ > IF lNewAlias > USE (file_dbf) ALIAS (myalias) > ELSE > USE (file_dbf) > ENDIF > #ELSE Cl*pper > IF lNewAlias > USE &file_dbf ALIAS &myalias > ELSE > USE &file_dbf > ENDIF > #ENDIF > ENDIF > IF .NOT. NETERR() Error open DBF ? > > *** eof *** > >> IF File(cIndex) >> DBSETINDEX(cIndex) >> ENDIF >> >> IF .NOT. NETERR() && USE succeeds > > you shoud test NetErr() BEFORE setting Index > >> recover using objLocal >> MsgBox( objLocal:description ) > > is objLocal:description valid ? > > i woud recommend asking :osCode : > > *** snip > RECOVER USING oError > If oError:osCode#0 > > *** eof *** > > greetings by OHR > Jimmy > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 09:14:55 -0400 Hi James, and Jimmy I have changed my code to use the DBUseArea as you can see on my earlier emails with no luck. The portion of the RECOVER on my code never gets fired at all. The NETERR never happens aswell. "James Loughner" <jwrl@charter.net> wrote in message news:5e57d1be$3ae597d0$1055d5@news.alaska-software.com... > Right you can't use a macro on a local variable. Basically it is not > visible to the internal compiler. You can only use a macro on a string ( > like defining a codeblock) or Public/Private variables. Should have seen > that earlier but I have abandoned USE statements for DBUseArea in most > of my code. > > Jim > > AUGE_OHR wrote: >> hi, >> >>> USE &file >> >> i did have look into my "Net_Use" to remember that there is a diffence in >> Xbase++ / Cl*pper : >> >> *** snip *** >> IF FILE(file_dbf) does files exist >> DO WHILE m_dauer> 0 timeout >> IF ex_use Exclusive >> #IFDEF __XPP__ Xbase++ >> IF lNewAlias >> USE (file_dbf) EXCLUSIVE ALIAS (myalias) >> ELSE >> USE (file_dbf) EXCLUSIVE >> ENDIF >> #ELSE Cl*pper >> IF lNewAlias >> USE &file_dbf EXCLUSIVE ALIAS &myalias >> ELSE >> USE &file_dbf EXCLUSIVE >> ENDIF >> #ENDIF >> ELSE shared >> #IFDEF __XPP__ Xbase++ >> IF lNewAlias >> USE (file_dbf) ALIAS (myalias) >> ELSE >> USE (file_dbf) >> ENDIF >> #ELSE Cl*pper >> IF lNewAlias >> USE &file_dbf ALIAS &myalias >> ELSE >> USE &file_dbf >> ENDIF >> #ENDIF >> ENDIF >> IF .NOT. NETERR() Error open DBF ? >> >> *** eof *** >> >>> IF File(cIndex) >>> DBSETINDEX(cIndex) >>> ENDIF >>> >>> IF .NOT. NETERR() && USE succeeds >> >> you shoud test NetErr() BEFORE setting Index >> >>> recover using objLocal >>> MsgBox( objLocal:description ) >> >> is objLocal:description valid ? >> >> i woud recommend asking :osCode : >> >> *** snip >> RECOVER USING oError >> If oError:osCode#0 >> >> *** eof *** >> >> greetings by OHR >> Jimmy >> >> | |
Eric Breddam | Re: Random Crash on xBase Hybrid. on Fri, 29 Sep 2006 17:15:49 -0700 > There is no specific place for it to crash, and if I go to the same > place it crashed before, it wont necessarly crash again. > > I know it must be something really simple i'm not doing but I can't > figure out what it is. > > Anyone with an idea? > Do you get the exact same fatal error log every single time? | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 09:29:12 -0400 Yes Eric, I do. Same place every time. But from random locations, as explained before. Thanks Marcelo "Eric Breddam" <eric@somdata.com> wrote in message news:55bf645a$5248fd1b$d20d4@news.alaska-software.com... >> There is no specific place for it to crash, and if I go to the same >> place it crashed before, it wont necessarly crash again. >> >> I know it must be something really simple i'm not doing but I can't >> figure out what it is. >> >> Anyone with an idea? >> > > Do you get the exact same fatal error log every single time? > > | |
Martin Altmann | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 12:05:44 +0200 Marcelo, are you using filters? A friend of one of the German usergroups had the very same errors appearing randomly. It turned out to be due to the use of the set filter using a Boolean field. He used set filter to ! db->bfield with bfield being a field of type "L". He found out that the field is not being initialised with .f. and therefore the filter crashed when there was such an uninitialised (NIL) field. After changing the filter to set filter to db->bfield # .t. everything worked - no more crashes! Regards, Martin ______________________________ Deutschsprachiges Xbase-Forum: http://www.xbaseforum.de/ ______________________________ | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 09:31:39 -0400 Hum... I actually do Martin, but it has no boolean fields, instead it is a 4 char field (actually up to 6 fields) on them... But You idea seem to be pretty much possible, since the other apps I have on xBase do NOT have a filter and they work just fine. Thanks for the idea. I'll do some testings with it. In the meantime, you can see my entire NET_USE function (where the error happens) in case you curious to see whats in there. Thanks Marcelo "Martin Altmann" <Altmann@altem.de> wrote in message news:40be83e8$4c8e48$ec388@news.alaska-software.com... > Marcelo, > are you using filters? > A friend of one of the German usergroups had the very same errors > appearing randomly. > It turned out to be due to the use of the set filter using a Boolean > field. > He used > set filter to ! db->bfield > with bfield being a field of type "L". > He found out that the field is not being initialised with .f. and > therefore the filter crashed when there was such an uninitialised (NIL) > field. > After changing the filter to > set filter to db->bfield # .t. > everything worked - no more crashes! > > Regards, > Martin > > -- > ______________________________ > > Deutschsprachiges Xbase-Forum: > http://www.xbaseforum.de/ > ______________________________ > | |
James Loughner | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 10:57:59 -0400 Are you using a file dialog to select a file any place?? As a side effect it will change the default directory!!! Jim Marcelo wrote: > Hum... I actually do Martin, but it has no boolean fields, instead it is a 4 > char field (actually up to 6 fields) on them... But > You idea seem to be pretty much possible, since the other apps I have on > xBase do NOT have a filter and they work just fine. > > Thanks for the idea. I'll do some testings with it. > In the meantime, you can see my entire NET_USE function (where the error > happens) in case you curious to see whats in there. > > Thanks > Marcelo > > > "Martin Altmann" <Altmann@altem.de> wrote in message > news:40be83e8$4c8e48$ec388@news.alaska-software.com... >> Marcelo, >> are you using filters? >> A friend of one of the German usergroups had the very same errors >> appearing randomly. >> It turned out to be due to the use of the set filter using a Boolean >> field. >> He used >> set filter to ! db->bfield >> with bfield being a field of type "L". >> He found out that the field is not being initialised with .f. and >> therefore the filter crashed when there was such an uninitialised (NIL) >> field. >> After changing the filter to >> set filter to db->bfield # .t. >> everything worked - no more crashes! >> >> Regards, >> Martin >> >> -- >> ______________________________ >> >> Deutschsprachiges Xbase-Forum: >> http://www.xbaseforum.de/ >> ______________________________ >> > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 11:44:09 -0400 No Fileboxes James. I have some news tho.. I added a begin sequence on my net use. as the following *** bLastHandler := ERRORBLOCK({ |e| break(e) }) begin sequence IF !Empty(cLocD .... ...wait = wait - 1 ENDDO recover using objLocal //send messages to objLocal and handle the error IF objLocal:genCode != 0 MsgBox( objLocal:description ) ENDIF end ERRORBLOCK(bLastHandler) *** And tried to run it on the Visual xBase ++ debugger. then I found a pattern how to reproduce the problem: 1. Open and close the tables many times. (by going back and forth on many or the same screen.) (about 30 times) 2. Then, go to any other window you have open (Outlook, word, MSN, etc..).. 3. Go back to the xBase application and try to go back to a menu option that opens a table. 4. The program will crash without executing the recover portion. NOTE: The first time it happened, the debugger gave me an "boxed" error message saying that the debugger had crashed with an error at that point I didn't take a screen shot, cause I wanted to know if I could reproduce the same problem again. From the top of my head I remember some of the error descriptions shown on the debugger error detail. Error: "Parameter Of wrong type" Parameter: <U of (dont remember the second portion)> [2] does that say anything? Let me know if you need more details on this. Thanks a lot guys! Marcelo. "James Loughner" <jwrl@charter.net> wrote in message news:2b37e313$d270176$fcd01@news.alaska-software.com... > Are you using a file dialog to select a file any place?? As a side > effect it will change the default directory!!! > > Jim > > Marcelo wrote: >> Hum... I actually do Martin, but it has no boolean fields, instead it is >> a 4 >> char field (actually up to 6 fields) on them... But >> You idea seem to be pretty much possible, since the other apps I have on >> xBase do NOT have a filter and they work just fine. >> >> Thanks for the idea. I'll do some testings with it. >> In the meantime, you can see my entire NET_USE function (where the error >> happens) in case you curious to see whats in there. >> >> Thanks >> Marcelo >> >> >> "Martin Altmann" <Altmann@altem.de> wrote in message >> news:40be83e8$4c8e48$ec388@news.alaska-software.com... >>> Marcelo, >>> are you using filters? >>> A friend of one of the German usergroups had the very same errors >>> appearing randomly. >>> It turned out to be due to the use of the set filter using a Boolean >>> field. >>> He used >>> set filter to ! db->bfield >>> with bfield being a field of type "L". >>> He found out that the field is not being initialised with .f. and >>> therefore the filter crashed when there was such an uninitialised (NIL) >>> field. >>> After changing the filter to >>> set filter to db->bfield # .t. >>> everything worked - no more crashes! >>> >>> Regards, >>> Martin >>> >>> -- >>> ______________________________ >>> >>> Deutschsprachiges Xbase-Forum: >>> http://www.xbaseforum.de/ >>> ______________________________ >>> >> >> | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 08:59:18 -0700 Does the filename include the complete path and extension? You might in fact be encountering a "file not found" error if the default directory has been changed due to use of another application. -Joe Marcelo wrote: > No Fileboxes James. > > I have some news tho.. I added a begin sequence on my net use. as the > following > > *** > bLastHandler := ERRORBLOCK({ |e| break(e) }) > begin sequence > IF !Empty(cLocD .... > ...wait = wait - 1 > ENDDO > recover using objLocal > //send messages to objLocal and handle the error > IF objLocal:genCode != 0 > MsgBox( objLocal:description ) > ENDIF > > end > ERRORBLOCK(bLastHandler) > *** > > And tried to run it on the Visual xBase ++ debugger. then I found a > pattern how to reproduce the problem: > > 1. Open and close the tables many times. (by going back and forth on many > or the same screen.) (about 30 times) > 2. Then, go to any other window you have open (Outlook, word, MSN, > etc..).. > 3. Go back to the xBase application and try to go back to a menu option > that opens a table. > 4. The program will crash without executing the recover portion. > > NOTE: The first time it happened, the debugger gave me an "boxed" > error message saying that the debugger had > crashed with an error at that point I didn't take a screen shot, cause I > wanted to know if I could reproduce the same > problem again. > From the top of my head I remember some of the error descriptions shown > on the debugger error detail. > > Error: "Parameter Of wrong type" > Parameter: <U of (dont remember the second portion)> [2] > > does that say anything? > > Let me know if you need more details on this. > > Thanks a lot guys! > Marcelo. > > > > "James Loughner" <jwrl@charter.net> wrote in message > news:2b37e313$d270176$fcd01@news.alaska-software.com... > >>Are you using a file dialog to select a file any place?? As a side >>effect it will change the default directory!!! >> >>Jim >> >>Marcelo wrote: >> >>>Hum... I actually do Martin, but it has no boolean fields, instead it is >>>a 4 >>>char field (actually up to 6 fields) on them... But >>>You idea seem to be pretty much possible, since the other apps I have on >>>xBase do NOT have a filter and they work just fine. >>> >>>Thanks for the idea. I'll do some testings with it. >>>In the meantime, you can see my entire NET_USE function (where the error >>>happens) in case you curious to see whats in there. >>> >>>Thanks >>>Marcelo >>> >>> >>>"Martin Altmann" <Altmann@altem.de> wrote in message >>>news:40be83e8$4c8e48$ec388@news.alaska-software.com... >>> >>>>Marcelo, >>>>are you using filters? >>>>A friend of one of the German usergroups had the very same errors >>>>appearing randomly. >>>>It turned out to be due to the use of the set filter using a Boolean >>>>field. >>>>He used >>>> set filter to ! db->bfield >>>>with bfield being a field of type "L". >>>>He found out that the field is not being initialised with .f. and >>>>therefore the filter crashed when there was such an uninitialised (NIL) >>>>field. >>>>After changing the filter to >>>> set filter to db->bfield # .t. >>>>everything worked - no more crashes! >>>> >>>>Regards, >>>>Martin >>>> >>>>-- >>>>______________________________ >>>> >>>>Deutschsprachiges Xbase-Forum: >>>>http://www.xbaseforum.de/ >>>>______________________________ >>>> >>> >>> > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 13:47:01 -0400 No the variable "file" does not contain the full path. I change the current path on the top of the net_use. So the "file" variable has only the filename to be opened. I'm going to by trying for a file not found just to make sure that this is the problem. and will post you guys back on it. so we can make sure that is is checked. Thanks, Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:40279098$3911caf8$fd2b4@news.alaska-software.com... > Does the filename include the complete path and extension? You might in > fact be encountering a "file not found" error if the default directory has > been changed due to use of another application. > > -Joe > > Marcelo wrote: >> No Fileboxes James. >> >> I have some news tho.. I added a begin sequence on my net use. as the >> following >> >> *** >> bLastHandler := ERRORBLOCK({ |e| break(e) }) >> begin sequence >> IF !Empty(cLocD .... >> ...wait = wait - 1 >> ENDDO >> recover using objLocal >> //send messages to objLocal and handle the error >> IF objLocal:genCode != 0 >> MsgBox( objLocal:description ) >> ENDIF >> >> end >> ERRORBLOCK(bLastHandler) >> *** >> >> And tried to run it on the Visual xBase ++ debugger. then I found a >> pattern how to reproduce the problem: >> >> 1. Open and close the tables many times. (by going back and forth on >> many or the same screen.) (about 30 times) >> 2. Then, go to any other window you have open (Outlook, word, MSN, >> etc..).. >> 3. Go back to the xBase application and try to go back to a menu >> option that opens a table. >> 4. The program will crash without executing the recover portion. >> >> NOTE: The first time it happened, the debugger gave me an "boxed" >> error message saying that the debugger had >> crashed with an error at that point I didn't take a screen shot, cause I >> wanted to know if I could reproduce the same >> problem again. >> From the top of my head I remember some of the error descriptions >> shown on the debugger error detail. >> >> Error: "Parameter Of wrong type" >> Parameter: <U of (dont remember the second portion)> [2] >> >> does that say anything? >> >> Let me know if you need more details on this. >> >> Thanks a lot guys! >> Marcelo. >> >> >> >> "James Loughner" <jwrl@charter.net> wrote in message >> news:2b37e313$d270176$fcd01@news.alaska-software.com... >> >>>Are you using a file dialog to select a file any place?? As a side >>>effect it will change the default directory!!! >>> >>>Jim >>> >>>Marcelo wrote: >>> >>>>Hum... I actually do Martin, but it has no boolean fields, instead it is >>>>a 4 >>>>char field (actually up to 6 fields) on them... But >>>>You idea seem to be pretty much possible, since the other apps I have on >>>>xBase do NOT have a filter and they work just fine. >>>> >>>>Thanks for the idea. I'll do some testings with it. >>>>In the meantime, you can see my entire NET_USE function (where the error >>>>happens) in case you curious to see whats in there. >>>> >>>>Thanks >>>>Marcelo >>>> >>>> >>>>"Martin Altmann" <Altmann@altem.de> wrote in message >>>>news:40be83e8$4c8e48$ec388@news.alaska-software.com... >>>> >>>>>Marcelo, >>>>>are you using filters? >>>>>A friend of one of the German usergroups had the very same errors >>>>>appearing randomly. >>>>>It turned out to be due to the use of the set filter using a Boolean >>>>>field. >>>>>He used >>>>> set filter to ! db->bfield >>>>>with bfield being a field of type "L". >>>>>He found out that the field is not being initialised with .f. and >>>>>therefore the filter crashed when there was such an uninitialised (NIL) >>>>>field. >>>>>After changing the filter to >>>>> set filter to db->bfield # .t. >>>>>everything worked - no more crashes! >>>>> >>>>>Regards, >>>>>Martin >>>>> >>>>>-- >>>>>______________________________ >>>>> >>>>>Deutschsprachiges Xbase-Forum: >>>>>http://www.xbaseforum.de/ >>>>>______________________________ >>>>> >>>> >>>> >> | |
AUGE_OHR | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 18:13:54 +0200 hi, > NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) ... > IF empty(ali_nm) > USE &file are you shure that fexist(file) at that time ? is &file local or network ? why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ? > 1. Open and close the tables many times. (by going back and forth on many > or the same screen.) (about 30 times) did you use : SET RUSHMORE ON/OFF SET SMARTFILTER ONOFF SET OPTIMIZE ON/OFF did you use your own DbeSys.PRG ? greetings by OHR Jimmy | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 13:39:58 -0400 Hi Jimmy, I cannot say at this point that i'm sure that the fexist(file) at that time, but i will put that in to the code just to try. It should exist since i'm calling the same open files at all times and the cLocDbf comes from location file which has the location for each file i use. Also I "set default to" and curdir() to those locations. Yes, &file is on the network. No, I do not use a modified version of ErrorSys.prg. No, I do not use SET RUSHMORE, SET SMARTFILTER or SET OPTIMIZE options at all. No, I do not have my own DbeSys.prg. I use ADSDBE to connect to all dbfs. Any other ideas? Thanks! Marcelo "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... > hi, > >> NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) > ... >> IF empty(ali_nm) >> USE &file > > are you shure that fexist(file) at that time ? is &file local or network ? > why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ? > >> 1. Open and close the tables many times. (by going back and forth on > many >> or the same screen.) (about 30 times) > > did you use : > > SET RUSHMORE ON/OFF > SET SMARTFILTER ONOFF > SET OPTIMIZE ON/OFF > > did you use your own DbeSys.PRG ? > > greetings by OHR > Jimmy > > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 13:57:05 -0400 Okay. So the results for the "FILE NOT FOUND" theory is: False. The FExists(file) always return TRUE, and even so the program still crashes. I added the following piece of code to check for the file: if FExists(file+".dbf") USE &file else MsgBox("Not found!!!") endif It still crashes on the same site, and with the same fatalerror (now with the new line numbers of course). Any other ideas? Thanks! Marcelo "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... > hi, > >> NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) > ... >> IF empty(ali_nm) >> USE &file > > are you shure that fexist(file) at that time ? is &file local or network ? > why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ? > >> 1. Open and close the tables many times. (by going back and forth on > many >> or the same screen.) (about 30 times) > > did you use : > > SET RUSHMORE ON/OFF > SET SMARTFILTER ONOFF > SET OPTIMIZE ON/OFF > > did you use your own DbeSys.PRG ? > > greetings by OHR > Jimmy > > > | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 11:30:48 -0700 Marcelo wrote: > Okay. So the results for the "FILE NOT FOUND" theory is: > False. > > The FExists(file) always return TRUE, and even so the program still crashes. > > I added the following piece of code to check for the file: > if FExists(file+".dbf") > USE &file > else > MsgBox("Not found!!!") > endif > > It still crashes on the same site, and with the same fatalerror (now with > the new line numbers of course). > > Any other ideas? > > Thanks! > Marcelo > > Try the FOpen() function instead of USE. This will give you a return code which might explain what's happening. If this succeeds, then you will need to FClose() the file (check the calling sequences for both of these functions) before attempting to "USE" it. I assume that the line where the error occurs is: USE &file Note that placing certain things in a prg before your function might actually report an incorrect line number when an error occurs. -Joe | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 15:14:54 -0400 Hi Joe, I tried the FOpen() FClose().I added the following code to my net_use: nFilehandle = FOpen(file+".dbf",FO_READWRITE) IF FError() = 0 If FClose(nFilehandle) DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) //Open table w/ all modes already pre-set Else MsgBox("error closing") EndIf Else MsgBox("error opening: "+Str(Ferror())) ENdIF The same problem happened, no error from FOpen or Close. The error line is indeed hte "USE &file" and I know that it's the correct line being reported, since I changed the entire function (as you can see on my previous message) and the error still occurs (but on the DBUsearea )... Thanks for the try! Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:1523eb03$7535c1b3$100641@news.alaska-software.com... > Marcelo wrote: >> Okay. So the results for the "FILE NOT FOUND" theory is: >> False. >> >> The FExists(file) always return TRUE, and even so the program still >> crashes. >> >> I added the following piece of code to check for the file: >> if FExists(file+".dbf") >> USE &file >> else >> MsgBox("Not found!!!") >> endif >> >> It still crashes on the same site, and with the same fatalerror (now with >> the new line numbers of course). >> >> Any other ideas? >> >> Thanks! >> Marcelo >> >> > > Try the FOpen() function instead of USE. This will give you a return code > which might explain what's happening. If this succeeds, then you will > need to FClose() the file (check the calling sequences for both of these > functions) before attempting to "USE" it. > > I assume that the line where the error occurs is: > > USE &file > > Note that placing certain things in a prg before your function might > actually report an incorrect line number when an error occurs. > > -Joe | |
Marcelo | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 14:24:25 -0400 Okay I re-wrote the NET_USE file so it would have valid values all the time, so we dont need to worry about something is not initialized or a file is not there: ********************** FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, cLocDbf) local forever := (wait = 0) local cIndex := IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) //In case the file name comes with the extesion on it, we replace instead of appending to it. Local cCurrentPath := CAIGetCurDir() cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) IF !Empty(cLocDbf) Set Default To &(cLocDbf) CurDir(cLocDbf) ENDIF //save current and set new error handler bLastHandler := ERRORBLOCK({ |e| break(e) }) begin sequence DO WHILE (forever .OR. wait > 0) bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) //Sets as readonly if current user levels don't meet minimum required bShared := (!ex_use) //Just transfer boolean value to a more meaningful name if FExists(file+".dbf") DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) //Open table w/ all modes already pre-set Else MsgBox("File '"+file+".dbf' does not exist in: "+ CAIGetCurDir()) Return(.F.) EndIf IF File(cIndex) DBSETINDEX(cIndex) ENDIF IF .NOT. NETERR() && USE succeeds RETURN (.T.) ENDIF INKEY(1) && wait 1 second wait = wait - 1 ENDDO recover using objLocal MsgBox( objLocal:description ) end ERRORBLOCK(bLastHandler) IF !Empty(cLocDbf) Set Default To &(cCurrentPath) CurDir(cCurrentPath) EndIf RETURN (.F.) && USE fails ********************** The first time I ran the the new NET_USE I got an error message (attached), on the subsequent runs (i didnt change anything) it only crashes as before.. Marcelo "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... > hi, > >> NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) > ... >> IF empty(ali_nm) >> USE &file > > are you shure that fexist(file) at that time ? is &file local or network ? > why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ? > >> 1. Open and close the tables many times. (by going back and forth on > many >> or the same screen.) (about 30 times) > > did you use : > > SET RUSHMORE ON/OFF > SET SMARTFILTER ONOFF > SET OPTIMIZE ON/OFF > > did you use your own DbeSys.PRG ? > > greetings by OHR > Jimmy > > > ErrorLog with new NETUSE.txt | |
Martin Altmann | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 21:55:52 +0200 Marcelo, if you take a look at your error log, you will see that there is an error within your error handler (even so you told use that you are not using your own but the standard one)! Look at the "called from" lines - it is a recursion!! Regards, Martin ______________________________ Deutschsprachiges Xbase-Forum: http://www.xbaseforum.de/ ______________________________ | |
Marcelo | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 09:35:17 -0400 Hi Martin, Please take a look at the attached files on my reply to Joe Carrick just below. I still think i'm not using a custom error file, but maybe i'm missing to look somewhere?.. Thanks, Marcelo "Martin Altmann" <Altmann@altem.de> wrote in message news:6d31783$206acede$10409b@news.alaska-software.com... > Marcelo, > if you take a look at your error log, you will see that there is an error > within your error handler (even so you told use that you are not using > your own but the standard one)! > Look at the "called from" lines - it is a recursion!! > > Regards, > Martin > > -- > ______________________________ > > Deutschsprachiges Xbase-Forum: > http://www.xbaseforum.de/ > ______________________________ > | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Mon, 02 Oct 2006 13:06:15 -0700 Hi Marcelo, The Error log indicates a recursion error in the error handler. In addition, there is an indication of corrupted data structures. This usually happens in calls to external dll's (perhaps a WinAPI call or some other non Xbase++ function. As I previously mentioned, the line reported is not necessarily correct, since defining a DLL Function early in the prg can cause improper line number reporting in the error handler. If you will post the actual prg (not just a cut and paste into the message) then perhaps we can get to the bottom of this. Otherwise, we are just spinning our wheels. -Joe Marcelo wrote: > Okay I re-wrote the NET_USE file so it would have valid values all the time, > so we dont need to > worry about something is not initialized or a file is not there: > > > ********************** > FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, cLocDbf) > local forever := (wait = 0) > local cIndex := > IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) > //In case the file name comes with the extesion on it, we replace instead of > appending to it. > Local cCurrentPath := CAIGetCurDir() > > cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) > cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) > cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) > > > IF !Empty(cLocDbf) > Set Default To &(cLocDbf) > CurDir(cLocDbf) > ENDIF > > //save current and set new error handler > bLastHandler := ERRORBLOCK({ |e| break(e) }) > begin sequence > DO WHILE (forever .OR. wait > 0) > bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) > //Sets as readonly if current user levels don't meet minimum required > bShared := (!ex_use) > //Just transfer boolean value to a more meaningful name > if FExists(file+".dbf") > DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) > //Open table w/ all modes already pre-set > Else > MsgBox("File '"+file+".dbf' does not exist in: "+ CAIGetCurDir()) > Return(.F.) > EndIf > IF File(cIndex) > DBSETINDEX(cIndex) > ENDIF > > IF .NOT. NETERR() && USE succeeds > RETURN (.T.) > ENDIF > > INKEY(1) && wait 1 second > wait = wait - 1 > ENDDO > recover using objLocal > MsgBox( objLocal:description ) > end > ERRORBLOCK(bLastHandler) > > IF !Empty(cLocDbf) > Set Default To &(cCurrentPath) > CurDir(cCurrentPath) > EndIf > RETURN (.F.) && USE fails > > ********************** > > > The first time I ran the the new NET_USE I got an error message (attached), > on the subsequent runs (i didnt change anything) it only crashes as before.. > Marcelo > > > > "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message > news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... > >>hi, >> >> >>>NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) >> >>... >> >>> IF empty(ali_nm) >>> USE &file >> >>are you shure that fexist(file) at that time ? is &file local or network ? >>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG ? >> >> >>>1. Open and close the tables many times. (by going back and forth on >> >>many >> >>>or the same screen.) (about 30 times) >> >>did you use : >> >> SET RUSHMORE ON/OFF >> SET SMARTFILTER ONOFF >> SET OPTIMIZE ON/OFF >> >>did you use your own DbeSys.PRG ? >> >>greetings by OHR >>Jimmy >> >> >> > > > > ------------------------------------------------------------------------------ > ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 14:08:17 > > Xbase++ version : Xbase++ (R) Version 1.90.331 > Operating system : Windows XP 05.01 Build 02600 Service Pack 2 > ------------------------------------------------------------------------------ > oError:args : > -> VALTYPE: N VALUE: 586 > oError:canDefault : N > oError:canRetry : N > oError:canSubstitute: Y > oError:cargo : NIL > oError:description : Internal data structures corrupted > oError:filename : > oError:genCode : 41 > oError:operation : procName > oError:osCode : 0 > oError:severity : 2 > oError:subCode : 5 > oError:subSystem : BASE > oError:thread : 1 > oError:tries : 0 > ------------------------------------------------------------------------------ > CALLSTACK: > ------------------------------------------------------------------------------ > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) > Called from STANDARDEH(178) > Called from (B)ERRORSYS(51) | |
Marcelo | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 09:34:35 -0400 Hi Joe, Here it is the entire PRG where NET_USE is declared. I'm also including a copy of the project file so you guys can analyse if I'm in fact using a custom error handler. I hope thats the file you were talking about. About calling a exertnal DLL, yes we have a test menu that does call a external DLL, but I dont go to this menu at all when reproducing this error. Could it still affect the program normal exectution? Thanks, Marcelo "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:28f1edd5$406f1068$10463f@news.alaska-software.com... > Hi Marcelo, > > The Error log indicates a recursion error in the error handler. In > addition, there is an indication of corrupted data structures. This > usually happens in calls to external dll's (perhaps a WinAPI call or > some other non Xbase++ function. > > As I previously mentioned, the line reported is not necessarily correct, > since defining a DLL Function early in the prg can cause improper line > number reporting in the error handler. > > If you will post the actual prg (not just a cut and paste into the > message) then perhaps we can get to the bottom of this. Otherwise, we > are just spinning our wheels. > > -Joe > > Marcelo wrote: >> Okay I re-wrote the NET_USE file so it would have valid values all the >> time, >> so we dont need to >> worry about something is not initialized or a file is not there: >> >> >> ********************** >> FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, >> cLocDbf) >> local forever := (wait = 0) >> local cIndex := >> IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) >> //In case the file name comes with the extesion on it, we replace instead >> of >> appending to it. >> Local cCurrentPath := CAIGetCurDir() >> >> cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) >> cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) >> cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) >> >> >> IF !Empty(cLocDbf) >> Set Default To &(cLocDbf) >> CurDir(cLocDbf) >> ENDIF >> >> //save current and set new error handler >> bLastHandler := ERRORBLOCK({ |e| break(e) }) >> begin sequence >> DO WHILE (forever .OR. wait > 0) >> bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) >> //Sets as readonly if current user levels don't meet minimum required >> bShared := (!ex_use) >> //Just transfer boolean value to a more meaningful name >> if FExists(file+".dbf") >> DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) >> //Open table w/ all modes already pre-set >> Else >> MsgBox("File '"+file+".dbf' does not exist in: "+ >> CAIGetCurDir()) >> Return(.F.) >> EndIf >> IF File(cIndex) >> DBSETINDEX(cIndex) >> ENDIF >> >> IF .NOT. NETERR() && USE succeeds >> RETURN (.T.) >> ENDIF >> >> INKEY(1) && wait 1 second >> wait = wait - 1 >> ENDDO >> recover using objLocal >> MsgBox( objLocal:description ) >> end >> ERRORBLOCK(bLastHandler) >> >> IF !Empty(cLocDbf) >> Set Default To &(cCurrentPath) >> CurDir(cCurrentPath) >> EndIf >> RETURN (.F.) && USE fails >> >> ********************** >> >> >> The first time I ran the the new NET_USE I got an error message >> (attached), >> on the subsequent runs (i didnt change anything) it only crashes as >> before.. >> Marcelo >> >> >> >> "AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message >> news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... >> >>>hi, >>> >>> >>>>NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) >>> >>>... >>> >>>> IF empty(ali_nm) >>>> USE &file >>> >>>are you shure that fexist(file) at that time ? is &file local or network >>>? >>>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG >>>? >>> >>> >>>>1. Open and close the tables many times. (by going back and forth on >>> >>>many >>> >>>>or the same screen.) (about 30 times) >>> >>>did you use : >>> >>> SET RUSHMORE ON/OFF >>> SET SMARTFILTER ONOFF >>> SET OPTIMIZE ON/OFF >>> >>>did you use your own DbeSys.PRG ? >>> >>>greetings by OHR >>>Jimmy >>> >>> >>> >> >> >> >> ------------------------------------------------------------------------------ >> ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 >> 14:08:17 >> >> Xbase++ version : Xbase++ (R) Version 1.90.331 >> Operating system : Windows XP 05.01 Build 02600 Service Pack 2 >> ------------------------------------------------------------------------------ >> oError:args : >> -> VALTYPE: N VALUE: 586 >> oError:canDefault : N >> oError:canRetry : N >> oError:canSubstitute: Y >> oError:cargo : NIL >> oError:description : Internal data structures corrupted >> oError:filename : >> oError:genCode : 41 >> oError:operation : procName >> oError:osCode : 0 >> oError:severity : 2 >> oError:subCode : 5 >> oError:subSystem : BASE >> oError:thread : 1 >> oError:tries : 0 >> ------------------------------------------------------------------------------ >> CALLSTACK: >> ------------------------------------------------------------------------------ >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) >> Called from STANDARDEH(178) >> Called from (B)ERRORSYS(51) OPEN_COM.PRG PROJECT.XPJ | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 09:05:25 -0700 Hi Marcelo, Offhand, I don't see anything in the code that would cause this problem. However, the fact that the complete network path is not specified for the file still bothers me. Constructing a complete path/fileName would be appropriate to limit the possibilities of what's causing the problem. In addition, I'd do the same for the index file(s). A printout or message to indicate the current directory and the complete file pathname would also be help you determine exactly what is being opened. It's possible that there are more than one location where the filename exists (in more than one path) and maybe one can be opened and another can't. You say that the problem occurs at a specific site and you can also cause it by going to another app such as Explorer, etc and then switching back to your app and attempting to open the file. This strongly suggests an I/O problem that could be path or network settings related. I also noted that you have some include files that might actually have executable code within them. That could mess up the error line reporting. I can't really do anything with the project file because that would require all source files as well. The best bet if you can't resolve this yourself is to send a complete project with all required files to Alaska Support along with a description of how to make it fail. This would use some of your support points, but in reality, the failure is pretty specific to your environment. IMO, the problem is related to file path/name and without fully testing to see what those are immediately before the USE and SET INDEX commands, you will have a real tough time finding the cause. In a network environment, I always specify the complete network path and file name of database and index files. Relying on just the filenames is very risky. -Joe Marcelo wrote: > Hi Joe, > > Here it is the entire PRG where NET_USE is declared. I'm also including > a copy of the project file so you guys > can analyse if I'm in fact using a custom error handler. > I hope thats the file you were talking about. > > About calling a exertnal DLL, yes we have a test menu that does call a > external DLL, but I dont go to > this menu at all when reproducing this error. Could it still affect the > program normal exectution? > > Thanks, > Marcelo > > > "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message > news:28f1edd5$406f1068$10463f@news.alaska-software.com... > >>Hi Marcelo, >> >>The Error log indicates a recursion error in the error handler. In >>addition, there is an indication of corrupted data structures. This >>usually happens in calls to external dll's (perhaps a WinAPI call or >>some other non Xbase++ function. >> >>As I previously mentioned, the line reported is not necessarily correct, >>since defining a DLL Function early in the prg can cause improper line >>number reporting in the error handler. >> >>If you will post the actual prg (not just a cut and paste into the >>message) then perhaps we can get to the bottom of this. Otherwise, we >>are just spinning our wheels. >> >>-Joe >> >>Marcelo wrote: >> >>>Okay I re-wrote the NET_USE file so it would have valid values all the >>>time, >>>so we dont need to >>>worry about something is not initialized or a file is not there: >>> >>> >>>********************** >>>FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, >>>cLocDbf) >>> local forever := (wait = 0) >>> local cIndex := >>>IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) >>>//In case the file name comes with the extesion on it, we replace instead >>>of >>>appending to it. >>> Local cCurrentPath := CAIGetCurDir() >>> >>> cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) >>> cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) >>> cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) >>> >>> >>> IF !Empty(cLocDbf) >>> Set Default To &(cLocDbf) >>> CurDir(cLocDbf) >>> ENDIF >>> >>> //save current and set new error handler >>> bLastHandler := ERRORBLOCK({ |e| break(e) }) >>> begin sequence >>> DO WHILE (forever .OR. wait > 0) >>> bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) >>>//Sets as readonly if current user levels don't meet minimum required >>> bShared := (!ex_use) >>>//Just transfer boolean value to a more meaningful name >>> if FExists(file+".dbf") >>> DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) >>>//Open table w/ all modes already pre-set >>> Else >>> MsgBox("File '"+file+".dbf' does not exist in: "+ >>>CAIGetCurDir()) >>> Return(.F.) >>> EndIf >>> IF File(cIndex) >>> DBSETINDEX(cIndex) >>> ENDIF >>> >>> IF .NOT. NETERR() && USE succeeds >>> RETURN (.T.) >>> ENDIF >>> >>> INKEY(1) && wait 1 second >>> wait = wait - 1 >>> ENDDO >>> recover using objLocal >>> MsgBox( objLocal:description ) >>> end >>> ERRORBLOCK(bLastHandler) >>> >>> IF !Empty(cLocDbf) >>> Set Default To &(cCurrentPath) >>> CurDir(cCurrentPath) >>> EndIf >>>RETURN (.F.) && USE fails >>> >>>********************** >>> >>> >>>The first time I ran the the new NET_USE I got an error message >>>(attached), >>>on the subsequent runs (i didnt change anything) it only crashes as >>>before.. >>>Marcelo >>> >>> >>> >>>"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message >>>news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... >>> >>> >>>>hi, >>>> >>>> >>>> >>>>>NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) >>>> >>>>... >>>> >>>> >>>>> IF empty(ali_nm) >>>>> USE &file >>>> >>>>are you shure that fexist(file) at that time ? is &file local or network >>>>? >>>>why did you not get a Errorlog ... did you use a "modifyed" ErrorSys.PRG >>>>? >>>> >>>> >>>> >>>>>1. Open and close the tables many times. (by going back and forth on >>>> >>>>many >>>> >>>> >>>>>or the same screen.) (about 30 times) >>>> >>>>did you use : >>>> >>>> SET RUSHMORE ON/OFF >>>> SET SMARTFILTER ONOFF >>>> SET OPTIMIZE ON/OFF >>>> >>>>did you use your own DbeSys.PRG ? >>>> >>>>greetings by OHR >>>>Jimmy >>>> >>>> >>>> >>> >>> >>> >>>------------------------------------------------------------------------------ >>>ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 >>>14:08:17 >>> >>>Xbase++ version : Xbase++ (R) Version 1.90.331 >>>Operating system : Windows XP 05.01 Build 02600 Service Pack 2 >>>------------------------------------------------------------------------------ >>>oError:args : >>> -> VALTYPE: N VALUE: 586 >>>oError:canDefault : N >>>oError:canRetry : N >>>oError:canSubstitute: Y >>>oError:cargo : NIL >>>oError:description : Internal data structures corrupted >>>oError:filename : >>>oError:genCode : 41 >>>oError:operation : procName >>>oError:osCode : 0 >>>oError:severity : 2 >>>oError:subCode : 5 >>>oError:subSystem : BASE >>>oError:thread : 1 >>>oError:tries : 0 >>>------------------------------------------------------------------------------ >>>CALLSTACK: >>>------------------------------------------------------------------------------ >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) >>>Called from STANDARDEH(178) >>>Called from (B)ERRORSYS(51) > > > | |
Marcelo | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 13:08:15 -0400 Hi Joe, I added an output file (using the Fopen/Fclose tested before) to output the entire situation of files opens, work areas and paths every time it passes by that area. I also added the full path to the table name. Everything seems to be fine. Furthermore I'm testing before opening, if there is already a file under that work area, and if it does have a filter set. That part of the code is never fire, which means that everything is closed and there are no filters on that work area. I already sent a request to Alaska, and i'm waiting for them to give me any feed back. I will keep trying it here, and post my result tests here if you guys don't mind, just so if you have an idea on what i'm doing you guys can reply on it. Thank you all for the great help so far! Marcelo. "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:7a0d2883$528786a3$1149c1@news.alaska-software.com... > Hi Marcelo, > > Offhand, I don't see anything in the code that would cause this problem. > However, the fact that the complete network path is not specified for the > file still bothers me. Constructing a complete path/fileName would be > appropriate to limit the possibilities of what's causing the problem. In > addition, I'd do the same for the index file(s). A printout or message to > indicate the current directory and the complete file pathname would also > be help you determine exactly what is being opened. It's possible that > there are more than one location where the filename exists (in more than > one path) and maybe one can be opened and another can't. > > You say that the problem occurs at a specific site and you can also cause > it by going to another app such as Explorer, etc and then switching back > to your app and attempting to open the file. This strongly suggests an > I/O problem that could be path or network settings related. > > I also noted that you have some include files that might actually have > executable code within them. That could mess up the error line reporting. > > I can't really do anything with the project file because that would > require all source files as well. The best bet if you can't resolve this > yourself is to send a complete project with all required files to Alaska > Support along with a description of how to make it fail. This would use > some of your support points, but in reality, the failure is pretty > specific to your environment. > > IMO, the problem is related to file path/name and without fully testing to > see what those are immediately before the USE and SET INDEX commands, you > will have a real tough time finding the cause. > > In a network environment, I always specify the complete network path and > file name of database and index files. Relying on just the filenames is > very risky. > > -Joe > > > > Marcelo wrote: >> Hi Joe, >> >> Here it is the entire PRG where NET_USE is declared. I'm also >> including a copy of the project file so you guys >> can analyse if I'm in fact using a custom error handler. >> I hope thats the file you were talking about. >> >> About calling a exertnal DLL, yes we have a test menu that does call >> a external DLL, but I dont go to >> this menu at all when reproducing this error. Could it still affect the >> program normal exectution? >> >> Thanks, >> Marcelo >> >> >> "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message >> news:28f1edd5$406f1068$10463f@news.alaska-software.com... >> >>>Hi Marcelo, >>> >>>The Error log indicates a recursion error in the error handler. In >>>addition, there is an indication of corrupted data structures. This >>>usually happens in calls to external dll's (perhaps a WinAPI call or >>>some other non Xbase++ function. >>> >>>As I previously mentioned, the line reported is not necessarily correct, >>>since defining a DLL Function early in the prg can cause improper line >>>number reporting in the error handler. >>> >>>If you will post the actual prg (not just a cut and paste into the >>>message) then perhaps we can get to the bottom of this. Otherwise, we >>>are just spinning our wheels. >>> >>>-Joe >>> >>>Marcelo wrote: >>> >>>>Okay I re-wrote the NET_USE file so it would have valid values all the >>>>time, >>>>so we dont need to >>>>worry about something is not initialized or a file is not there: >>>> >>>> >>>>********************** >>>>FUNCTION NET_USE (file, ex_use, wait, min_lev, ali_nm, bIsIndexing, >>>>cLocDbf) >>>> local forever := (wait = 0) >>>> local cIndex := >>>>IIF(AT(".DBF",Upper(file))>0,StrTran(Upper(file),".DBF",".CDX"),file+indexext()) >>>>//In case the file name comes with the extesion on it, we replace >>>>instead of >>>>appending to it. >>>> Local cCurrentPath := CAIGetCurDir() >>>> >>>> cLocDbf := IIF(cLocDbf==NIL,"",cLocDbf) >>>> cCurrLevel := IIF(LEVEL=nil .OR. Empty(LEVEL),"",LEVEL) >>>> cMin_Level := IIF(min_lev=nil .OR. Empty(min_lev),"",min_lev) >>>> >>>> >>>> IF !Empty(cLocDbf) >>>> Set Default To &(cLocDbf) >>>> CurDir(cLocDbf) >>>> ENDIF >>>> >>>> //save current and set new error handler >>>> bLastHandler := ERRORBLOCK({ |e| break(e) }) >>>> begin sequence >>>> DO WHILE (forever .OR. wait > 0) >>>> bReadOnly := (!empty(min_lev) .AND. (cCurrLevel < cMin_Level)) >>>>//Sets as readonly if current user levels don't meet minimum required >>>> bShared := (!ex_use) >>>>//Just transfer boolean value to a more meaningful name >>>> if FExists(file+".dbf") >>>> DBUSEAREA(,,file,ali_nm,bShared,bReadOnly) >>>>//Open table w/ all modes already pre-set >>>> Else >>>> MsgBox("File '"+file+".dbf' does not exist in: "+ >>>> CAIGetCurDir()) >>>> Return(.F.) >>>> EndIf >>>> IF File(cIndex) >>>> DBSETINDEX(cIndex) >>>> ENDIF >>>> >>>> IF .NOT. NETERR() && USE succeeds >>>> RETURN (.T.) >>>> ENDIF >>>> >>>> INKEY(1) && wait 1 second >>>> wait = wait - 1 >>>> ENDDO >>>> recover using objLocal >>>> MsgBox( objLocal:description ) >>>> end >>>> ERRORBLOCK(bLastHandler) >>>> >>>> IF !Empty(cLocDbf) >>>> Set Default To &(cCurrentPath) >>>> CurDir(cCurrentPath) >>>> EndIf >>>>RETURN (.F.) && USE fails >>>> >>>>********************** >>>> >>>> >>>>The first time I ran the the new NET_USE I got an error message >>>>(attached), >>>>on the subsequent runs (i didnt change anything) it only crashes as >>>>before.. >>>>Marcelo >>>> >>>> >>>> >>>>"AUGE_OHR" <AUGE_OHR*AT*CSI.COM> wrote in message >>>>news:1a704c85$77e54fa6$fd2a0@news.alaska-software.com... >>>> >>>> >>>>>hi, >>>>> >>>>> >>>>> >>>>>>NET_USE (file, ex_use, wait, min_lev, ali_nm, cLocDbf) >>>>> >>>>>... >>>>> >>>>> >>>>>> IF empty(ali_nm) >>>>>> USE &file >>>>> >>>>>are you shure that fexist(file) at that time ? is &file local or >>>>>network ? >>>>>why did you not get a Errorlog ... did you use a "modifyed" >>>>>ErrorSys.PRG ? >>>>> >>>>> >>>>> >>>>>>1. Open and close the tables many times. (by going back and forth >>>>>>on >>>>> >>>>>many >>>>> >>>>> >>>>>>or the same screen.) (about 30 times) >>>>> >>>>>did you use : >>>>> >>>>> SET RUSHMORE ON/OFF >>>>> SET SMARTFILTER ONOFF >>>>> SET OPTIMIZE ON/OFF >>>>> >>>>>did you use your own DbeSys.PRG ? >>>>> >>>>>greetings by OHR >>>>>Jimmy >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>>------------------------------------------------------------------------------ >>>>ERROR LOG of "C:\VSS_DOS\XBase\Visual xPMS\xPMSNew.exe" Date: 10/02/2006 >>>>14:08:17 >>>> >>>>Xbase++ version : Xbase++ (R) Version 1.90.331 >>>>Operating system : Windows XP 05.01 Build 02600 Service Pack 2 >>>>------------------------------------------------------------------------------ >>>>oError:args : >>>> -> VALTYPE: N VALUE: 586 >>>>oError:canDefault : N >>>>oError:canRetry : N >>>>oError:canSubstitute: Y >>>>oError:cargo : NIL >>>>oError:description : Internal data structures corrupted >>>>oError:filename : >>>>oError:genCode : 41 >>>>oError:operation : procName >>>>oError:osCode : 0 >>>>oError:severity : 2 >>>>oError:subCode : 5 >>>>oError:subSystem : BASE >>>>oError:thread : 1 >>>>oError:tries : 0 >>>>------------------------------------------------------------------------------ >>>>CALLSTACK: >>>>------------------------------------------------------------------------------ >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >>>>Called from STANDARDEH(178) >>>>Called from (B)ERRORSYS(51) >> >> | |
Joe Carrick | Re: Random Crash on xBase Hybrid. on Tue, 03 Oct 2006 09:24:55 -0700 Marcelo wrote: > > About calling a exertnal DLL, yes we have a test menu that does call a > external DLL, but I dont go to > this menu at all when reproducing this error. Could it still affect the > program normal exectution? > Data Structures Corrupted means that something has "clobbered" a portion of memory. This can happen if a parameter in a C++ or WinAPI function is of the wrong type or value or .....? Many of these functions have little or no internal error correction, so parameters must be very carefully used. In addition, another App or a virus could do a similar thing. The actual program failure can occur a considerable time later when that portion of memory is accessed by another process. So the answer to your question is "yes". Assume that a specific location in memory has a low level function in binary form (possibly a file open function that normally reports an error condition if it fails). Now, some other program improperly changes a bit within that memory area. At this point, the function no longer works properly if at all. If that happens, you can be relatively sure that your program will crash someplace but where it does may not have anything to do with the actual problem. That said, I doubt your test menu is the problem. -Joe | |
Marcelo | Re: Random Crash on xBase Hybrid. on Wed, 04 Oct 2006 15:54:27 -0400 Hi there, I have news about this problem! I finally was able to isolate it. You can find the small code, project and empty table attached. Some of the code won't make too much sense, since I manually changed it so it wouldn't need all the bells and whistles that come with it. For now, I say that the problem is on the set filter (or dbsetfilter). you can see further details on the MAIN function that has some comments to reproduce different problems results. Can anyone tell me why the set filter makes it crash? Thanks, Marcelo PS: I'm still waiting for Alaska to reply me.:P So guys, please help! "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message news:532eddba$2637896f$11491c@news.alaska-software.com... > > > Marcelo wrote: > >> >> About calling a exertnal DLL, yes we have a test menu that does call >> a >> external DLL, but I dont go to >> this menu at all when reproducing this error. Could it still affect the >> program normal exectution? >> > > Data Structures Corrupted means that something has "clobbered" a portion > of memory. This can happen if a parameter in a C++ or WinAPI function > is of the wrong type or value or .....? Many of these functions have > little or no internal error correction, so parameters must be very > carefully used. In addition, another App or a virus could do a similar > thing. > > The actual program failure can occur a considerable time later when that > portion of memory is accessed by another process. So the answer to your > question is "yes". Assume that a specific location in memory has a low > level function in binary form (possibly a file open function that > normally reports an error condition if it fails). Now, some other > program improperly changes a bit within that memory area. At this > point, the function no longer works properly if at all. > > If that happens, you can be relatively sure that your program will crash > someplace but where it does may not have anything to do with the actual > problem. > > That said, I doubt your test menu is the problem. > > -Joe test2.zip | |
James Loughner | Re: Random Crash on xBase Hybrid. on Wed, 04 Oct 2006 18:16:45 -0400 Try SET RUSHMORE OFF There are known problem with this tech. It defaults ON. SET OPTIMIZE OFF would be the second thing I'd try. Another possible area is Smart Filter SET SMARTFILTER OFF is the third thing Jim Marcelo wrote: > Hi there, > > I have news about this problem! > I finally was able to isolate it. You can find the small code, project > and empty table attached. > Some of the code won't make too much sense, since I manually changed it > so it wouldn't need > all the bells and whistles that come with it. > > For now, I say that the problem is on the set filter (or dbsetfilter). > you can see further details on the > MAIN function that has some comments to reproduce different problems > results. > > Can anyone tell me why the set filter makes it crash? > > Thanks, > Marcelo > PS: I'm still waiting for Alaska to reply me.:P So guys, please help! > > "Joe Carrick" <joe.carrick@dslextreme.com> wrote in message > news:532eddba$2637896f$11491c@news.alaska-software.com... >> >> Marcelo wrote: >> >>> About calling a exertnal DLL, yes we have a test menu that does call >>> a >>> external DLL, but I dont go to >>> this menu at all when reproducing this error. Could it still affect the >>> program normal exectution? >>> >> Data Structures Corrupted means that something has "clobbered" a portion >> of memory. This can happen if a parameter in a C++ or WinAPI function >> is of the wrong type or value or .....? Many of these functions have >> little or no internal error correction, so parameters must be very >> carefully used. In addition, another App or a virus could do a similar >> thing. >> >> The actual program failure can occur a considerable time later when that >> portion of memory is accessed by another process. So the answer to your >> question is "yes". Assume that a specific location in memory has a low >> level function in binary form (possibly a file open function that >> normally reports an error condition if it fails). Now, some other >> program improperly changes a bit within that memory area. At this >> point, the function no longer works properly if at all. >> >> If that happens, you can be relatively sure that your program will crash >> someplace but where it does may not have anything to do with the actual >> problem. >> >> That said, I doubt your test menu is the problem. >> >> -Joe > > | |
AUGE_OHR | Re: Random Crash on xBase Hybrid. on Thu, 05 Oct 2006 03:15:41 +0200 hi, >Can anyone tell me why the set filter makes it crash? where is your XppError.Log (not XppFatal.Log) the only Error i become after 1t loop is FERROR() = 32 which is clear while you never CLOSE you DBF but you open it every Time (why ?) in the loop. i do not undertand why you working so much with CURDIR() (! note : difference to Cl*pper !) > IF .NOT. NETERR() && USE succeeds > RETURN (.T.) > ENDIF > > IF File(cIndex) > DBSETINDEX(cIndex) > ENDIF i told you to use NetErr() before SET INDEX, but now you will never reach SET INDEX while it have RETURN(.T.) before ... >PS: I'm still waiting for Alaska to reply me.:P So guys, please help! sorry to say : these are (a lot of) User Errors and not Xbase++ Errors ... and if you make a sample, please try to make it "simple" and "small" to show EXACT what do NOT work and nothind else. greeting by OHR Jimmy |