eCS ISP Mailing List <ecs-isp@2rosenthals.com>, webserve-list@os2voice.org
This is a long shot. I suspect my problem is unsolvable.
Has anyone else had problems with VioWrtCharStr? I've been using it
successfully for years, but suddenly I have a case where the program
using it just exits without comment. Not every time, just at one
particular place in my program. And, in fact, only when I run the
debugger. (Which is stopping me from working on an unrelated bug, later
in the execution.) No trap file, no POPUPLOG entry, no symptoms at all
except that the program exits. The stack pointer doesn't seem to be
anywhere near a significant boundary.
The code in question is
rc := OS2.VioWrtCharStr (p^, amount, CurrentRow,CurrentColumn, 0);
IF rc <> 0 THEN
HALT;
END (*IF*);
The HALT is there because I was searching for a way to discover the
value of rc, but it turns out that the exit occurs before an rc value
can be returned. The parameter values: CurrentRow=19, CurrentColumn=0,
amount is something like 50, and p points to a character string that is
guaranteed not to cross a 64K boundary in memory.
By stepping through machine instructions I found that the problem is
somewhere in a module called BVHWNDW$, in something called from
DOSCALL1, but I haven't been able to pin it down more precisely than that.