MrSwiss wrote:(The only conclusion concerning FB so far is, that the GFX-drivers are of no consequence here.)
Except if the GFX window disappears, it means the GFX driver thread exited, whether it was told to or it crashed. And if it doesn't get to the Sleep, it probably crashed.
Plus if the window sometimes says not responding, that means the GFX driver thread is alive (since the window is still there) but hasn't pumped messages for at least five seconds (i.e. it's gotten stuck somewhere) and a deadlock in the GFX drivers is a pretty serious problem.
Makoto, can you open Task Manager and go to the Processes tab (you may have to click More Details first), compile the code below and keep running it until it stops on the empty white screen or says Not Responding.
When it does, in Task Manager right click on the exe's entry and Create Dump File. It'll put it in your temp directory.
When that's done, if you could zip the dump file, the exe and any error.txt file together and upload it somewhere (there's
https://www.filedropper.com if you don't have anywhere else)
Code: Select all
' GFX_Font-Test1.bas -- (c) 2020-10-16, MrSwiss
'' compile: -s gui ' WIN only
'
#include "windows.bi"
#include "crt/stdio.bi"
Function ExceptionHandler stdcall (pEp As PEXCEPTION_POINTERS) As Long
' Bypass FB file handling code because we don't want to try taking locks
' that might now be abandoned
dim f as FILE ptr
dim pEr as PEXCEPTION_RECORD = pEp->ExceptionRecord
f = fopen("error.txt", "at")
If f <> Null Then
fprintf( _
f, _
"Caught exception of type %#x at %p\n", _
pEr->ExceptionCode, pEr->ExceptionAddress _
)
fclose(f)
End If
Return 0
End Function
' screen constants
Const As UShort scr_w = 800, scr_h = 600, _ ' change as needed
mxw = scr_w - 1, mxh = scr_h - 1, _ ' don't touch (never change)
clrd = 32, pgs = 2, sflg = 64 ' change not needed typically
' color constants (mainly self explaining)
Const As ULong white = &hFFFFFFFF, black = &hFF000000, _
dgray = &hFF3F3F3F, mgray = &hFF7F7F7F, _ ' d = dark | m = medium
bgray = &hFFBFBFBF, bred = &hFFFF0000, _ ' b = bright
bgreen = &hFF00FF00, bblue = &hFF0000FF, _
yellow = &hFFFFFF00, orange = &hFFFF7F00, _
violet = &hFF7F007F, cyan = &hFF00FFFF, _
pink = &hFFFF00FF, transp = &h00FF00FF ' pink | FB's magic pink
AddVectoredExceptionHandler(1, @ExceptionHandler)
ScreenRes(scr_w, scr_h, clrd, pgs) ' sflg not wanted here (all opaque)
ScreenSet(1, 0) ' working-/display-page
Color(black, white) : Cls ' fore-/background colors
Width scr_w \ 8, scr_h \ 16 ' force: 8 x 16 Font size
For i As UInteger = 32 To 127
If i = 127 Then
Print WChr(i) : Exit For
End If
Print WChr(i); ", ";
Next
Print : Print : Print "... done ... ";
Flip ' aka: pcopy (show it all)
Sleep