Oi Walter,

Achar exatamente a linha, endereço de memória, nome do método e outras as 
informações detalhadas do erro é possível fazendo o parse do arquivo detalhado 
de compilação (*.map).

Existem vários componentes gratuitos e open-source pela internet, então não vou 
dizer que este ou aquele é excelente, pois quando precisei disso, baixei uns 5 
componentes que achei interessantes e montei o meu próprio para adaptar 
exatamente às minhas necessidades.

Nosso colega Leonardo pode fazer o mesmo, buscando em repositórios conhecidos 
como o Torry Delphi Pages ou outros.

Segue o link da busca do Google para consulta de alguns destes componentes: 
http://www.google.com.br/search?hl=pt-BR&q=exception+%2Bmap+files+%2Bdelphi+component&btnG=Pesquisar&meta=

[]'s

---
=== Eric Roberto ===
MSN: eric...@hotmail.com
Blog: http://cafenocodigo.blogspot.com/


From: Walter Chagas (Bol) 
Sent: Friday, February 27, 2009 2:32 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] Retornar a Linha & Unit


Senhores,

No Clipper isto era possível porque lá o codigo fonte era embutido compilado 
junto com o interpretador de comandos do DBase dentro de um executável. No caso 
do Delphi, que usa um compilador que gera instruções puras de maquina x86, não 
há como guardar o nome e o numero da unit que provocou erro. O nome da Unit e 
da rotina (Função ou procedure) ainda é possível. Vide a rotina abaixo que vos 
mando. Agora o numero exato da linha na unit, não tem como. Ou pelo menos eu 
nunca consegui achar isto.

function GetUnitName(argObject: TObject): string;
//
// Pega o nome da unit aonde ocorreu o erro
//
begin
if (argObject.ClassInfo <> nil) then
begin
ptrTypeData := GetTypeData(argObject.ClassInfo);
Result := ptrTypeData.UnitName;
end;
end;

Screen.ActiveForm.Name -> Nome do Form ativo no momento do erro.
Screen.ActiveControl.Name -> Nome do Controle ativo (Button, label, checkbox) 
no momento do erro.
Screen.ActiveControl.MethodName() -> Nome do método (função ou procedimento) 
aonde ocorreu o erro.

[]s


Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
wchag...@bol.com.br
http://www.geocities.com/SiliconValley/Bay/1058
http://delphitocorporerm.blogspot.com/
MSN: whitesock...@hotmail.com
SKYPE: WalterChagasJr

----- Original Message ----- 
From: Leonardo Quinino 
To: delphi-br@yahoogrupos.com.br 
Sent: Friday, February 27, 2009 11:04 AM
Subject: Re: [delphi-br] Retornar a Linha & Unit

Eu desistir de procurar isso no delphi, a unica coisa que ainda nao
conseguir fazer em relacao ao clipper foi justamente isso, ( eu programei em
clipper numa epoca jurassica) rs :)...

a solucao foi rever meus conceitos e valores ahahah,,, usar mais try
exception, mostrar as mensagens do erro exption E.ErroMessage.. etc....

gravar logs com telas no momento do erro...

Mas realmente com a praticidade do clipper, nao encontrei,, talvez seja em
funcao do tipo de ambiente de trabalho (dos / windows) ou talvez em relacao
aos metodos de trabalho interno do delphi nao permitir essa informacao.

Bem a minha opniao bem simploria do assunto é essa, mas posso estar falando
por ignorancia (falta de conhecimento).

Seria bom esse assunto, a solucao pode existir, se alguem tiver essa
solucao,, nos poupe de uma theread sem fim... .r S:)))))) !!!

2009/2/26 José Mário Silva Guedes <jmariogue...@gmail.com>

> Olá amigos...
>
> Passei o dia fazendo umas rotinas de LOGs e eis que surge a necessidade
> clássica: Pegar o nome da Unit e o número da linha.
>
> Pesquisei e achei o de sempre... Assert, arquivo MAP...
>
> Será que algum colega conseguiu resolver este tipo de necessidade? Algum
> expert ou componente resolve?
>
> Um forte abraço!
>
> --
> José Mário Silva Guedes
> Analista Programador Delphi
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

-- 
Leonardo Quinino

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]

Responder a