O meu objetivo era ter no meus logs a informação no momento de um Access Violation, abrindo mão do Eureka ou Mad Exception bem como do AVFinder (ao menos para este fim).
Acho que consegui um bom resultado por isso estou compartilhando o resultado.
Acesse:
http://code.google.com/u/jmarioguedes@gmail.com/updates
Desenvolvi e testei no Delphi 2007. Se você testar em outras versões poste seus comentários.
Para usar basta incluir a unit no teu projeto e em caso de Access Violation chamar a function LerMAPFile, passando o arquivo MAP bem como o endereço do AccessViolation, como no código abaixo:
procedure TForm1.Button1Click(Sender: TObject); var sl : TStringList; begin try sl.Add('Olá Mundo'); //Não foi dado Create, logo será gerado um AccessViolation except on E : EAccessViolation do begin //ShowMessage(E.Message); ShowMessage(LerMAPFile('blog.map',Copy(E.Message,29,8))); end; end; end;
A saida seria algo assim:
principal.TForm1.Button1Click,33 principal