Quantcast
Channel: Delphi – The Wiert Corner – irregular stream of stuff
Viewing all articles
Browse latest Browse all 1440

Delphi: some notes on HModule while tracking down an access violation in TRegGroups.UnregisterModuleClasses

$
0
0

Too bad the whole mechanism involving TRegGroups.UnregisterModuleClasses is not documented anywhere

It is the underlying storage to support TClassFinder, which was introduced in Delphi 6, documented on-line in Delphi 2007, documented slightly in Delphi 2009, and since Delphi 2010 only one line of documentation was added (including the unchanged “instatiated”):

  • Delphi 2007: [WayBack] TClassFinder Class

    This is class Classes.TClassFinder.

  • Delphi 2009:[WayBack] TClassFinder Class

    The TClassFinder allows the list of registered persistent classes to be retrieved. Objects instatiated from persistent classes are those that can be stored (serialised) beyond the operation of the current application.

  • Delphi 2010:[WayBack] Classes.TClassFinder – RAD Studio VCL Reference

    TClassFinder allows registered persistent classes to be retrieved.

    The TClassFinder allows the list of registered persistent classes to be retrieved. Objects instatiated from persistent classes are those that can be stored (serialised) beyond the operation of the current application.

Back to TRegGroups.UnregisterModuleClasses: it takes a HMODULE parameter and ultimately gets called through the (since Delphi 2007) on-line documented [WayBack] Classes.UnRegisterModuleClasses Function

procedure UnRegisterModuleClasses(Module: HMODULE);

Call UnRegisterModuleClasses to unregister all object classes that were registered by the module with the handle specified by the Module parameter. When a class is unregistered, it can’t be loaded or saved by the component streaming system.

After unregistering a class, its name can be reused to register another object class.

To get more context about the access violation, I used both the stack trace and a debugging watch for GetModuleName(Module) (using the [WayBack] SysUtils.GetModuleName Function).

In order to see which classes were registered by what module, I set a breakpoint at in TRegGroup.AddClass (which can be called through various code paths):

procedure TRegGroup.AddClass(AClass: TPersistentClass);
begin
  FGroupClasses.Add(AClass);
end;

HModule

That gave me the class, but I also needed the HModule for a class, so I did a windows get module of currently executing code – Google Search, giving me these links, all C/C++ related:

Here you already see some confusion: there is HINSTANCE and HMODULE. That’s a historic thing, as described by Raymond Chen in [WayBack] What is the difference between HINSTANCE and HMODULE? | The Old New Thing:

They mean the same thing today, but at one time they were quite different.
It all comes from 16-bit Windows.
In those days, a “module” represented a file on disk that had been loaded into memory, and the module “handle” was a handle to a data structure that described the parts of the file, where they come from, and where they had been loaded into memory (if at all). On the other hand an “instance” represented a “set of variables”.
One analogy that might (or might not) make sense is that a “module” is like the code for a C++ class – it describes how to construct an object, it implements the methods, it describes how the objects of the class behave. On the other hand, an “instance” is like a C++ object that belongs to that class – it describes the state of a particular instance of that object.
In C# terms, a “module” is like a “type” and an instance is like an “object”. (Except that modules don’t have things like “static members”, but it was a weak analogy anyway.)

GetModuleName

Searching for delphi “__ImageBase” – Google Search then got me [WayBack] c++ – Get DLL path at runtime – Stack Overflow with a nice Delphi related answer by [WayBack] Ian Boyd:

For Delphi users:

SysUtils.GetModuleName(hInstance);              //Works; hInstance is a special global variable
SysUtils.GetModuleName(0);                      //Fails; returns the name of the host exe process
SysUtils.GetModuleName(GetModuleFilename(nil)); //Fails; returns the name of the host exe process

In case your Delphi doesn’t have SysUtils.GetModuleName, it is declared as:

...

This reassured my use of [WayBack] SysUtils.GetModuleName code was OK:

function GetModuleName(Module: HMODULE): string; 
var
  ModName: array[0..MAX_PATH] of Char; 
begin
  SetString(Result, ModName, GetModuleFileName(Module, ModName, Length(ModName))); 
end;

HInstance in Delphi

The example from Ian Boyd also brought back memories from long ago about the [WayBack] HInstance Variable – Delphi in a Nutshell [Book]:

Delphi in a Nutshell by Ray Lischner

Name

HInstance Variable

Syntax

unit SysInit;
var HInstance: LongWord;

Description

The HInstance variable stores the instance handle for the module (application, library, or package) that contains the HInstance reference.

Tips and Tricks

  • The most common use for a module’s instance handler is to load resources from the module. A unit can use HInstance to load resources that are linked with that unit (using the $R compiler directive). To load resources that are linked with a different unit (which might reside in a different package), see the FindHInstance function.
  • To load resources that must be localized (e.g., forms, strings), see FindResourceHInstance.
  • The instance handle of the main application is stored in MainInstance.
  • Earlier versions of Delphi stored the main instance handle in HInstance, requiring a call to FindHInstance to learn a module’s instance handle. The current release stores the module’s instance handle in HInstance.

Example

// Use the Image Editor to create a .RES file that
// contains the company logo as the resource named LOGO.
// The GetLogo procedure sets its Bitmap argument
// to the company logo bitmap.

{$R 'Logo.res'}

procedure GetLogo(Bitmap: TBitmap);
begin
  Bitmap.LoadFromResourceName(HInstance, 'LOGO');
end;

See Also

FindClassHInstance Function, FindHInstance Function, MainInstance Variable

The HInstance variable – surprisingly – is in the SysInit unit, not the System unit, which is not documented in Delphi [Archive.is] 2007, [Archive.is] 2009, through [WayBack] XE2, and got only a slightly bit of documentation added in Delphi XE3:

The Delphi XE2 RTL added [WayBack] SysInit.__ImageBase which is an alias for the (also added in XE2) [WayBack] SysInit.ImageBase (both sort of documented as of Delphi XE3):

ImageBase: Pointer;           { Special symbol that is actually located at the module load address. @ImageBase. }

Getting the HModule from a class: use FindClassHInstance

You might think that when a method is called UnregisterModuleClasses, similar methods about HModule would also include Module in their name. But in practice, it is confusing, especially since most of these methods have been there since the Delphi 3 era, just looking at these names:

procedure RegisterModule(LibModule: PLibModule);
procedure UnregisterModule(LibModule: PLibModule);
function FindHInstance(Address: Pointer): HINST;
function FindClassHInstance(ClassType: TClass): HINST;
function FindResourceHInstance(Instance: HINST): HINST;
function GetResourceModuleName(HostAppName, ModuleName: string): string;
function LoadResourceModule(ModuleName: PChar; CheckOwner: Boolean = True): THandle;
procedure EnumModules(Func: TEnumModuleFunc; Data: Pointer); overload;
procedure EnumResourceModules(Func: TEnumModuleFunc; Data: Pointer); overload;
procedure EnumModules(Func: TEnumModuleFuncLW; Data: Pointer); overload;
procedure EnumResourceModules(Func: TEnumModuleFuncLW; Data: Pointer); overload;
procedure AddModuleUnloadProc(Proc: TModuleUnloadProc); overload;
procedure RemoveModuleUnloadProc(Proc: TModuleUnloadProc); overload;
procedure AddModuleUnloadProc(Proc: TModuleUnloadProcLW); overload;
procedure RemoveModuleUnloadProc(Proc: TModuleUnloadProcLW); overload;

These methods below are what I was after; just recall the same usage as the above [WayBack] VirtualQuery function (memoryapi.h) | Microsoft Docs (using a structure typed [WayBack] _MEMORY_BASIC_INFORMATION | Microsoft Docs):

function FindHInstance(Address: Pointer): HINST;
var
  MemInfo: TMemoryBasicInformation;
begin
  VirtualQuery(Address, MemInfo, SizeOf(MemInfo));
  if MemInfo.State = $1000{MEM_COMMIT} then
    Result := UIntPtr(MemInfo.AllocationBase)
  else
    Result := 0;
end;

function FindClassHInstance(ClassType: TClass): HINST;
begin
  Result := FindHInstance(Pointer(ClassType));
end;

Getting class and module in one line

The breakpoint expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName during debugging some of the time:

Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'

If it failed, because multiple copies of the RTL were loaded. This is a classic problem when either:

  • your project mixes packages and units (this can happen when using ODAC: their units expect packages, especially in their trials)
  • loading DLLs from EXEs where one uses packages, but the other does not

What also happened when watching these were FastMM errors on memory consistency. See the log below for that. I think this has the same cause.

–jeroen

Breakpoints used

All breakpoints in each method are right after the method begin.

Finding out if anything called GetModuleName (did never fire):

  • unit System.SysUtils
  • method function GetModuleName(Module: HMODULE): string;
  • no expression

Finding module name and class name for each registration

  • unit System.Classes
  • method procedure TRegGroup.AddClass(AClass: TPersistentClass);
  • expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName

Finding module name for unregistering all its classes

  • unit System.Classes
  • method procedure TRegGroups.UnregisterModuleClasses(Module: HMODULE);
  • expression GetModuleName(Module)
view raw
BreakPoints.md
hosted with ❤ by GitHub
Thread Start: Thread ID: 1816. Process main.exe (3144)
Process Start: D:\Development\mainProject\main.exe. Base Address: $00400000. Process main.exe (3144)
Module Load: main.exe. Has Debug Info. Base Address: $00400000. Process main.exe (3144)
Module Load: ntdll.dll. No Debug Info. Base Address: $778D0000. Process main.exe (3144)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $76810000. Process main.exe (3144)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $75970000. Process main.exe (3144)
Thread Start: Thread ID: 7572. Process main.exe (3144)
Thread Start: Thread ID: 4000. Process main.exe (3144)
Module Load: COMDLG32.dll. No Debug Info. Base Address: $76A90000. Process main.exe (3144)
Module Load: msvcrt.dll. No Debug Info. Base Address: $76DD0000. Process main.exe (3144)
Thread Start: Thread ID: 10308. Process main.exe (3144)
Module Load: WINMM.dll. No Debug Info. Base Address: $70730000. Process main.exe (3144)
Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $67C70000. Process main.exe (3144)
Module Load: combase.dll. No Debug Info. Base Address: $756F0000. Process main.exe (3144)
Module Load: ucrtbase.dll. No Debug Info. Base Address: $76C90000. Process main.exe (3144)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $74F60000. Process main.exe (3144)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $01320000. Process main.exe (3144)
Module Unload: RPCRT4.dll. Process main.exe (3144)
Module Load: WINMMBASE.dll. No Debug Info. Base Address: $001D0000. Process main.exe (3144)
Module Unload: WINMMBASE.dll. Process main.exe (3144)
Module Load: bcryptPrimitives.dll. No Debug Info. Base Address: $769A0000. Process main.exe (3144)
Module Load: WINMMBASE.dll. No Debug Info. Base Address: $706C0000. Process main.exe (3144)
Module Load: SspiCli.dll. No Debug Info. Base Address: $74F40000. Process main.exe (3144)
Module Load: AppCore.dll. No Debug Info. Base Address: $776F0000. Process main.exe (3144)
Module Load: CFGMGR32.dll. No Debug Info. Base Address: $75670000. Process main.exe (3144)
Module Load: bcrypt.dll. No Debug Info. Base Address: $75480000. Process main.exe (3144)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $74F30000. Process main.exe (3144)
Module Load: PROPSYS.dll. No Debug Info. Base Address: $73F80000. Process main.exe (3144)
Module Load: IPHLPAPI.DLL. No Debug Info. Base Address: $74EE0000. Process main.exe (3144)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $77790000. Process main.exe (3144)
Module Load: SECHOST.dll. No Debug Info. Base Address: $77840000. Process main.exe (3144)
Module Load: msvcp_win.dll. No Debug Info. Base Address: $75F10000. Process main.exe (3144)
Module Load: SHCORE.dll. No Debug Info. Base Address: $768F0000. Process main.exe (3144)
Module Load: SHCORE.dll. No Debug Info. Base Address: $01320000. Process main.exe (3144)
Module Unload: SHCORE.dll. Process main.exe (3144)
Module Load: USER32.dll. No Debug Info. Base Address: $75B70000. Process main.exe (3144)
Module Load: win32u.dll. No Debug Info. Base Address: $756B0000. Process main.exe (3144)
Module Load: GDI32.dll. No Debug Info. Base Address: $76A10000. Process main.exe (3144)
Module Load: gdi32full.dll. No Debug Info. Base Address: $774C0000. Process main.exe (3144)
Module Load: SHLWAPI.dll. No Debug Info. Base Address: $767C0000. Process main.exe (3144)
Module Load: SHELL32.dll. No Debug Info. Base Address: $75F90000. Process main.exe (3144)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $70AC0000. Process main.exe (3144)
Module Load: Windows.Storage.dll. No Debug Info. Base Address: $76EC0000. Process main.exe (3144)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $755F0000. Process main.exe (3144)
Module Load: profapi.dll. No Debug Info. Base Address: $76980000. Process main.exe (3144)
Module Load: POWRPROF.dll. No Debug Info. Base Address: $75D10000. Process main.exe (3144)
Module Load: CRYPTSP.dll. No Debug Info. Base Address: $756D0000. Process main.exe (3144)
Module Load: ole32.dll. No Debug Info. Base Address: $76B90000. Process main.exe (3144)
Module Load: VERSION.dll. No Debug Info. Base Address: $74850000. Process main.exe (3144)
Module Load: NETAPI32.dll. No Debug Info. Base Address: $74860000. Process main.exe (3144)
Module Load: SHFOLDER.dll. No Debug Info. Base Address: $681C0000. Process main.exe (3144)
Module Load: WSOCK32.dll. No Debug Info. Base Address: $70ED0000. Process main.exe (3144)
Module Load: FastMM_FullDebugMode.dll. No Debug Info. Base Address: $013B0000. Process main.exe (3144)
Module Unload: FastMM_FullDebugMode.dll. Process main.exe (3144)
Module Load: WS2_32.dll. No Debug Info. Base Address: $76670000. Process main.exe (3144)
Module Load: FastMM_FullDebugMode.dll. No Debug Info. Base Address: $013B0000. Process main.exe (3144)
Module Load: netutils.dll. No Debug Info. Base Address: $74180000. Process main.exe (3144)
Module Load: IMM32.dll. No Debug Info. Base Address: $76E90000. Process main.exe (3144)
Module Load: WINSTA.dll. No Debug Info. Base Address: $74100000. Process main.exe (3144)
Module Load: UxTheme.dll. No Debug Info. Base Address: $70480000. Process main.exe (3144)
Module Load: MSCTF.dll. No Debug Info. Base Address: $754A0000. Process main.exe (3144)
Debug Output: FastMM has been installed. Process main.exe (3144)
Source Breakpoint at $00A657D8: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 20376. Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomActionList' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomAction' Process main.exe (3144)
Module Load: dwmapi.dll. No Debug Info. Base Address: $6FD60000. Process main.exe (3144)
Module Load: CRYPT32.dll. No Debug Info. Base Address: $75D70000. Process main.exe (3144)
Module Load: MSASN1.dll. No Debug Info. Base Address: $76DC0000. Process main.exe (3144)
Module Load: WTSAPI32.dll. No Debug Info. Base Address: $74F20000. Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomImageList' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomAction' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomActionList' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomGestureManager' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCommonDialog' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomFileDialog' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TTimer' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TCustomTrayIcon' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TMenuItem' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TMenu' Process main.exe (3144)
Module Load: odac250.bpl. Has Debug Info. Base Address: $035B0000. Process main.exe (3144)
Module Unload: odac250.bpl. Process main.exe (3144)
Module Load: odac250.bpl. Has Debug Info. Base Address: $035B0000. Process main.exe (3144)
Module Load: rtl250.bpl. Has Debug Info. Base Address: $50050000. Process main.exe (3144)
Module Load: dbrtl250.bpl. Has Debug Info. Base Address: $51170000. Process main.exe (3144)
Module Load: imagehlp.dll. No Debug Info. Base Address: $76650000. Process main.exe (3144)
Module Load: MPR.dll. No Debug Info. Base Address: $74830000. Process main.exe (3144)
Module Load: dac250.bpl. Has Debug Info. Base Address: $03740000. Process main.exe (3144)
Module Unload: dac250.bpl. Process main.exe (3144)
Module Load: OLEACC.dll. No Debug Info. Base Address: $70500000. Process main.exe (3144)
Module Load: OPENGL32.dll. No Debug Info. Base Address: $67CE0000. Process main.exe (3144)
Module Load: WINHTTP.dll. No Debug Info. Base Address: $707F0000. Process main.exe (3144)
Module Load: GLU32.dll. No Debug Info. Base Address: $67270000. Process main.exe (3144)
Module Load: dac250.bpl. Has Debug Info. Base Address: $03740000. Process main.exe (3144)
Source Breakpoint at $5063681C: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 20376. Process main.exe (3144)
Module Load: OLEPRO32.DLL. No Debug Info. Base Address: $681A0000. Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TOleControl' Process main.exe (3144)
Source Breakpoint at $004B3035: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: 'D:\Development\mainProject\main.exe : TOleServer' Process main.exe (3144)
Module Load: dllProject.dll. No Debug Info. Base Address: $01540000. Process main.exe (3144)
Module Unload: dllProject.dll. Process main.exe (3144)
Module Load: dllProject.dll. No Debug Info. Base Address: $01540000. Process main.exe (3144)
Module Load: IndySystem250.bpl. Has Debug Info. Base Address: $517E0000. Process main.exe (3144)
Module Load: borlndmm.dll. No Debug Info. Base Address: $50030000. Process main.exe (3144)
Module Load: vcl250.bpl. Has Debug Info. Base Address: $50A90000. Process main.exe (3144)
Module Load: IndyCore250.bpl. Has Debug Info. Base Address: $514E0000. Process main.exe (3144)
Module Load: IndyProtocols250.bpl. Has Debug Info. Base Address: $51550000. Process main.exe (3144)
Module Load: oledlg.dll. No Debug Info. Base Address: $672B0000. Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Module Load: dbghelp.dll. No Debug Info. Base Address: $702A0000. Process main.exe (3144)
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B5DA68:
B0 04 02 00 00 00 00 00 11 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 41 00 63 00 74 00
69 00 6F 00 6E 00 4C 00 69 00 73 00 74 00 00 00 69 00 65 00 5C 00 64 00 65 00 78 00 65 00 73 00
5C 00 49 00 6E 00 64 00 79 00 53 00 79 00 73 00 74 00 65 00 6D 00 32 00 35 00 30 00 2E 00 4E 00
4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B567B0:
B0 04 02 00 00 00 00 00 0D 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 41 00 63 00 74 00
69 00 6F 00 6E 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B5DD08:
B0 04 02 00 00 00 00 00 10 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 49 00 6D 00 61 00
67 00 65 00 4C 00 69 00 73 00 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B569F0:
B0 04 02 00 00 00 00 00 0D 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 41 00 63 00 74 00
69 00 6F 00 6E 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B5DD40:
B0 04 02 00 00 00 00 00 11 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 41 00 63 00 74 00
69 00 6F 00 6E 00 4C 00 69 00 73 00 74 00 00 00 00 00 00 00 01 00 00 00 B0 04 02 00 00 00 00 00
12 00 00 00 74 00 6F 00 72 00 61 00 74 00 69 00 6D 00 65 00 73 00 74 00 61 00 6D 00 70 00 66 00
69 00 65 00 6C 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B64E30:
B0 04 02 00 00 00 00 00 15 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 47 00 65 00 73 00
74 00 75 00 72 00 65 00 4D 00 61 00 6E 00 61 00 67 00 65 00 72 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Thread Start: Thread ID: 10260. Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B73590:
B0 04 02 00 00 00 00 00 06 00 00 00 54 00 54 00 69 00 6D 00 65 00 72 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B56A20:
B0 04 02 00 00 00 00 00 0F 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 54 00 72 00 61 00
79 00 49 00 63 00 6F 00 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B88F60:
B0 04 02 00 00 00 00 00 09 00 00 00 54 00 4D 00 65 00 6E 00 75 00 49 00 74 00 65 00 6D 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B73730:
B0 04 02 00 00 00 00 00 05 00 00 00 54 00 4D 00 65 00 6E 00 75 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B56A50:
B0 04 02 00 00 00 00 00 0D 00 00 00 54 00 43 00 6F 00 6D 00 6D 00 6F 00 6E 00 44 00 69 00 61 00
6C 00 6F 00 67 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Process main.exe (3144)
Source Breakpoint at $5014B211: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3267. Process main.exe (3144)
Breakpoint Expression GetModuleName(FindClassHInstance(AClass)) + ' : ' + AClass.ClassName: E2010 Incompatible types: 'TClass' and 'TPersistentClass'
Debug Output:
FastMM has detected an error during a FreeMem operation. The block header has been corrupted.
The current thread ID is 0x718, and the stack trace (return addresses) leading to this error is:
40A449 [System.pas][System][@UStrClr$qqrpv][24867]
20036
1541A07 [__dbk_fcall_wrapper]
1563544 [fnSetCommStatus]
7790D40C [RtlGetNtSystemRoot]
77940466 [Unknown function at RtlFreeUserStack]
7790D40C [RtlGetNtSystemRoot]
7791A65C [RtlCompareUnicodeStrings]
7791A624 [RtlCompareUnicodeStrings]
7791A8CF [RtlCompareUnicodeStrings]
7792229E [LdrRemoveLoadAsDataTable]
Current memory dump of 256 bytes starting at pointer address 3B5DAD8:
B0 04 02 00 00 00 00 00 11 00 00 00 54 00 43 00 75 00 73 00 74 00 6F 00 6D 00 46 00 69 00 6C 00
65 00 44 00 69 00 61 00 6C 00 6F 00 67 00 00 00 00 00 00 00 A0 D9 B5 03 D8 99 16 50 00 00 00 00
01 00 00 00 AC 95 16 50 6C 30 18 50 10 DB B5 03 78 30 18 50 10 DB B5 03 48 1C B8 03 CC F0 63 50
00 00 00 00 00 00 00 00 00 00 00 00 A0 D9 B5 03 CC C0 BA 50 00 00 00 00 00 00 00 00 84
Process main.exe (3144)
Thread Start: Thread ID: 5328. Process main.exe (3144)
First chance exception at $75A8C762. Exception class EConvertError with message ''' is not a valid integer value'. Process main.exe (3144)
Thread Start: Thread ID: 1016. Process main.exe (3144)
Module Load: TextInputFramework.dll. No Debug Info. Base Address: $6BB10000. Process main.exe (3144)
Module Load: CoreMessaging.dll. No Debug Info. Base Address: $6B810000. Process main.exe (3144)
Module Load: CoreUIComponents.dll. No Debug Info. Base Address: $6B8A0000. Process main.exe (3144)
Module Load: WinTypes.dll. No Debug Info. Base Address: $71010000. Process main.exe (3144)
Module Load: NTMARTA.dll. No Debug Info. Base Address: $74150000. Process main.exe (3144)
Module Load: WinTypes.dll. No Debug Info. Base Address: $05AE0000. Process main.exe (3144)
Module Load: WinTypes.dll. No Debug Info. Base Address: $05A00000. Process main.exe (3144)
Module Unload: WinTypes.dll. Process main.exe (3144)
Module Unload: WinTypes.dll. Process main.exe (3144)
Source Breakpoint at $5014BF98: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3725. Process main.exe (3144)
Breakpoint Expression GetModuleName(Module): 'D:\Development\dllProject\dllProject.dll' Process main.exe (3144)
Source Breakpoint at $5014BFA4: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3727. Process main.exe (3144)
Source Breakpoint at $5014BFD9: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3725. Process main.exe (3144)
Breakpoint Expression GetModuleName(Module): 'D:\Development\dllProject\dllProject.dll' Process main.exe (3144)
Source Breakpoint at $5014BFA4: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3727. Process main.exe (3144)
Source Breakpoint at $5014BFD9: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3725. Process main.exe (3144)
Breakpoint Expression GetModuleName(Module): 'D:\Development\dllProject\dllProject.dll' Process main.exe (3144)
Module Unload: borlndmm.dll. Process main.exe (3144)
Source Breakpoint at $5014BF98: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3725. Process main.exe (3144)
Breakpoint Expression GetModuleName(Module): 'D:\Development\mainProject\IndyProtocols250.bpl' Process main.exe (3144)
Source Breakpoint at $5014BFA4: c:\program files (x86)\embarcadero\studio\19.0\source\rtl\common\System.Classes.pas line 3727. Process main.exe (3144)
First chance exception at $5014BFB4. Exception class $C0000005 with message 'access violation at 0x5014bfb4: read of address 0x03b64d7c'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
First chance exception at $50039CA8. Exception class $C0000005 with message 'access violation at 0x50039ca8: read of address 0x50039ca8'. Process main.exe (3144)
view raw
Evenglog.txt
hosted with ❤ by GitHub

Viewing all articles
Browse latest Browse all 1440

Trending Articles