Я пытаюсь заставить DUnit2 работать под 64-битной системой, но я не понимаю, что делает этот метод, не говоря уже о том, как преобразовать его в 64-битную версию. Чистый Паскаль был бы лучше, но поскольку он ссылается на стек (ebp ), это может быть невозможно.
function CallerAddr: Pointer; assembler;
const
CallerIP = $4;
asm
mov eax, ebp
call IsBadPointer
test eax,eax
jne @@Error
mov eax, [ebp].CallerIP
sub eax, 5 // 5 bytes for call
push eax
call IsBadPointer
test eax,eax
pop eax
je @@Finish
@@Error:
xor eax, eax
@@Finish:
end;