On Monday, 8 October 2012 at 12:00:00 UTC, Jakob Ovrum wrote:
On Monday, 8 October 2012 at 11:55:24 UTC, Paulo Pinto wrote:
On Monday, 8 October 2012 at 11:44:28 UTC, Jakob Ovrum wrote:
I have a bug in one of my programs that I find particularly
hard to reduce.
I am writing a Windows DLL plugin for the IRC chat client
HexChat (aka XChat). Problem is, all TLS variables,
regardless of type, appear to be initialized to complete
rubbish values. Reading them does not cause an access
violation or anything, but the initial values are garbage. I
am initializing the runtime using the helpers found in
core.sys.windows.dll [1].
I wrote a dummy host application in C mimicking the loading
behaviour of HexChat - the TLS variables are initialized
correctly in this case, even though the DLL file is exactly
the same.
What is it that a host application can do to break the TLS of
a D plugin it loads?
[1] http://pastebin.com/rg9uUQMe
Did you already went through this howto?
http://dlang.org/dll.html
Of course. I've written many DLLs before, and again, TLS works
in the exact same DLL when a different host program is used,
hence why it's so difficult to reduce.
Besides, there's nothing relevant in that article.
Sorry, just thought it might be helpful.