Re: [delphi-br] Retornar a Linha Unit
Eric, Eu já mexi com o .map. ele traz o erro mas muitas vezes o erro que ele aponta está na unit da VCL envolvida no problema e não diretamente na unit do seu projeto. Igual erros de banco de dados, o .map sempre aponta ou pra unit DB ou DBContrls... []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: Eric Roberto Darruiz To: delphi-br@yahoogrupos.com.br Sent: Saturday, February 28, 2009 10:34 AM Subject: Re: [delphi-br] Retornar a Linha Unit 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-BRq=exception+%2Bmap+files+%2Bdelphi+componentbtnG=Pesquisarmeta= []'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] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Retornar a Linha Unit
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-BRq=exception+%2Bmap+files+%2Bdelphi+componentbtnG=Pesquisarmeta= []'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]
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]
Res: [delphi-br] Retornar a Linha Unit
tenta usar o madexcept De: Leonardo Quinino leonardo.quin...@gmail.com Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 27 de Fevereiro de 2009 11:04:44 Assunto: 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 jmarioguedes@ 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] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
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]
[delphi-br] Retornar a Linha Unit
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]