"EXE has stopped working ..." - Printable Version +- QB64 Phoenix Edition (https://qb64phoenix.com/forum) +-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1) +--- Forum: Code and Stuff (https://qb64phoenix.com/forum/forumdisplay.php?fid=3) +---- Forum: Help Me! (https://qb64phoenix.com/forum/forumdisplay.php?fid=10) +---- Thread: "EXE has stopped working ..." (/showthread.php?tid=621) |
"EXE has stopped working ..." - arnoldhf - 07-16-2022 I have started converting 3 of a family of inter-related QB programs to QB64 and have run into the issue of getting the Windows message: "program" has stopped working A problem caused the program to stop working correctly. Windows will close the program etc, etc. The message is not immediate but comes up within a minute on all 3. Each program can start another using RUN. Sometimes the message appears when another program loads but before the program itself displays its screen. Within one program I do some data file access and after pulling up records a few times the error appears. Any suggestions on how to diagnose or eliminate the issue? Thanks, RE: "EXE has stopped working ..." - bplus - 07-16-2022 Instead of RUN use Shell and Shell a compiled bas. You can Compile a bas and Shell that exe (to Run it) on the fly if you are careful with folders. RE: "EXE has stopped working ..." - arnoldhf - 07-16-2022 Thanks. Tried it: Replaced RUN with SHELL. It didn't solve problem (still got WIN error) and when SHELLING the calling program remains open which I don't want since going between programs leaves multiple iterations of programs still open. Also, I am not sure what you mean by "Shell a compiled bas." I am compiling using QB64.exe and running the EXEs. (FYI the original QB programs used CHAIN because of common variables but I removed CHAIN and used RUN, but that's going to be a question for a different thread.) A RE: "EXE has stopped working ..." - SMcNeill - 07-16-2022 Can you share the code so we can test the issue ourselves? RE: "EXE has stopped working ..." - mdijkens - 07-17-2022 I'd say start by integrating all 3 sources in one. Just change overlapping labels/linenumbers or break up in easier to maintain subs and functions. Chain was used because of memory limitations. Now with QB64 this is virtually gone. RE: "EXE has stopped working ..." - arnoldhf - 07-17-2022 Thank you for the responses. I did "solve" the problem but I want to reply to you both first. To SMcNeill: It would not be beneficial to give the source code since the programs require a specific directory structure and data files to execute properly. Also, what turned out to be the offending program is probably around 4000 lines long. To mdijkens: A bit of background on the programs would be useful here: I started developing a "suite" of interrelated programs starting in the mid 80's. Because of QB program size restrictions I used $INCLUDE often as well as compiling multiple .BAS modules at into a single EXE. The result has been about 60+ fairly large BAS programs compiled into around 40+ EXEs all using CHAIN (to go to other modules) for COMMON variables. I will probably be changing that. To see if converting to QB64 was a job I wanted to tackle I "converted" 3 programs enough to run. So to your point, trying to combine them (all 60+) into one module was a thought I had but there are so many overlapping labels and line numbers as well as contradictory/reused variable names that I would give up if that was the only route. ---> Now as to the original reason for this thread, after much insertion of my own debugging code and many recompilings of the larger of the 3 programs I was able to narrow the cause of the error down to several lines of code: FIELD #10, 80 AS LG$ also GET #1, rn and perhaps I will still find others. Strangely I didn't get the error every time one of these lines was executed. If I REM these lines the error disappears completely. So it had something to do the the file I/O or access. I rewrote some code before these lines which OPENed the file, unREMed the offending lines, and now it works fine. I don't know why I didn't just get a more specific RUN TIME I/O error with error line # instead of the generic and extremely unhelpful Windows "program stopped responding" message. Again, thanks for the replies. Will probably post more questions later. A RE: "EXE has stopped working ..." - mdijkens - 07-17-2022 Thanks for your clarification. Been there also in the 80's; used same techniques. Your errors are strange and non-saying indeed With refactoring of much of my old ('80-'90) code I've, in a lot of cases, rewritten the file access parts too to get things reliable. Another point of attention is serial |