freenode/#shirakumo - IRC Chatlog
Search
18:24:31
Shinmera
I'm grasping at straws here, but anyone see anything obviously wrong with this? https://github.com/Shinmera/font-discovery/blob/master/windows.lisp#L58
18:24:32
Colleen
github.com/Shinmera/font-di... Website (HTML), Title: font-discovery/windows.lisp at master · Shinmera/font-discovery · GitHub
18:31:48
Shinmera
it's in the same file; allocates a pointer, calls the "value function", then rebinds the variable with the mem-refd pointer, finally adds an unwind-protect to call com-release on said pointer.
18:32:20
Shinmera
I think the problem is in my wstring->string translation, the wstring might not be null-terminated.
18:34:31
Shinmera
debugger comes up with an exception code from which I can exit, but no useful debug info on where it is when the exception hits
18:43:55
Shinmera
if I abort from the exception and retry it just crashes completely silently and goes unresponsive.
18:44:30
Shinmera
the exception seems to be triggered by the create-font-face call, if I leave that in it crashes, if I comment it out it goes through.
18:45:05
Shinmera
Doesn't seem like something you can mess up https://docs.microsoft.com/en-us/windows/win32/api/dwrite/nf-dwrite-idwritefont-createfontface
18:45:05
Colleen
docs.microsoft.com/en-us/wi... Website (HTML), Title: IDWriteFont::CreateFontFace (dwrite.h) | Microsoft Docs
18:51:57
|3b|
not exactly 'handling', but at least giving some info about what class it was or whatever
18:52:18
Colleen
devblogs.microsoft.com/oldn... Website (HTML), Title: Decoding the parameters of a thrown C++ exception (0xE06D7363) | The Old New Thing
18:53:32
|3b|
which shouldn't be too hard to add to sbcl, though no idea if it would actually end up useful in most cases like this where it is some random internal tthing
19:00:40
Shinmera
If I continue it runs into an integer overflow exception (and some breakpoints??), then memfaults.
19:02:04
|3b|
https://social.msdn.microsoft.com/Forums/en-US/a60ab40e-1229-4a0c-b56f-92fb3085bd98/exception-if-too-many-fonts-are-used-at-one-time?forum=winappswithcsharp ?
19:02:04
Colleen
social.msdn.microsoft.com/F... Website (HTML), Title: Exception if too many fonts are used at one time?
19:06:14
Shinmera
It might have something to do with the cumulative size of the fonts, so the order of font loading would matter.
19:09:45
Shinmera
I see no way to get the active FDs in the debugger, but I'm not well-versed with VS, so I don't know
19:10:55
Shinmera
I hate that I have to construct a face just to get at the damn file of the font anyway
19:16:02
|3b|
looks like process explorer does that https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
19:16:02
Colleen
docs.microsoft.com/en-us/sy... Website (HTML), Title: Process Explorer - Windows Sysinternals | Microsoft Docs
19:18:04
Shinmera
I've used procmon before to do it, but it doesn't seem to want to play nice with me right now.
19:27:26
Shinmera
Hmm, yeah, file handles are cleared up nicely, only the current (crashing) font's one is in the monitor.
19:28:42
Shinmera
The crash is on completely random fonts, after a completely random number of fonts having been iterated.
19:45:27
Shinmera
and then I'll call it a day unless someone else can reproduce the windows crash and debugs it
20:22:24
|3b|
well, it could be something that the lib would handle normally but sbcl got in the way (if i understand the sbcl changes correctly)