DUnit2を64ビットで動作させようとしていますが、64ビットに変換する方法は言うまでもなく、このメソッドの機能に困惑しています。Pure Pascalの方が優れていますが、スタック(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;