You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using Delphi 10.2 Version 25.0.27659.1188
Using provided demo, compiling with debug configuration, changing compiler options to enable overflow checking and range checking, an EintOverflow is produced in TDebugInfoSMap.ProcessMap on the line:
Result^.SegStartAddress := Pointer((PSegment^.SegStartAddress - LModuleImageBase) + Module.ModuleHandle);
Actually SegStartAddress is 0 and both LModuleImageBase and ModuleHandle have same value ($400000).
The text was updated successfully, but these errors were encountered:
Actually SegStartAddress is 0 and both LModuleImageBase and ModuleHandle have same value ($400000).
This is not always the case. Delphi debuginfo offsets are relative to the imagebase. However it's not always guaranteed that Windows loader will load the module at the specified address. So it's important to keep using the previous formula.
Nevertheless having an exception generated is not good at all. It means something is wrong with data types used. You should at least typecast to avoid the exception if you think the result is correct when overflow exception is turned on (Which is recommended for debugging purpose).
Using Delphi 10.2 Version 25.0.27659.1188
Using provided demo, compiling with debug configuration, changing compiler options to enable overflow checking and range checking, an EintOverflow is produced in TDebugInfoSMap.ProcessMap on the line:
Result^.SegStartAddress := Pointer((PSegment^.SegStartAddress - LModuleImageBase) + Module.ModuleHandle);
Actually SegStartAddress is 0 and both LModuleImageBase and ModuleHandle have same value ($400000).
The text was updated successfully, but these errors were encountered: