Desafio para usuários hwgui

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Atenção ao desafio.

NÃO É PRA FAZER FUNCIONAR.
É pra tentar eliminar o máximo de fonte, e continuar com erro.
test.prg
(28.07 KiB) Baixado 158 vezes
Reduzi bastante e o tamanho original.

Só pra curiosidade:

Código: Selecionar todos

FUNCTION Nothing()

   RETURN Nil
Se eliminar isso acima, que não serve pra nada, o fonte funciona.

Entenderam ?
É um fonte que inexplicavelmente dá erro.
Se compilar com -gc3 funciona.
Se eliminar essa função vazia também funciona.
Por enquanto reduzi de 56KB pra 28KB

O único jeito de tentar descobrir o motivo do erro é tentar reduzir o fonte e ele continuar com erro.
Ao fazer isso, o que sobrar no fonte seria o motivo real do erro.
A dificuldade é justamente porque qualquer coisa apagada pode resolver o erro, o que não explica o erro.
Tamanho de fonte não é, porque já reduziu pra metade.
Remover a função vazia.. se o problema não é tamanho, não explica o erro.

Pra mim tá parecendo que o harbour se perde nos retornos.
Pode ser falha de GUI ou não.
Pode ser que a lista de funções se altera, e tá pegando função errada.

Pode parecer interessante pra quem usa HWGUI,
Mas se for problema do harbour, interessa pra todos.

É compilar, entrar e sair, se der erro o problema ainda está lá.
Eventualmente tudo se fecha, mas o harbour registra hb_out.log
Application Internal Error - d:\fontes\testes\hwgui_bug\test.exe
Terminated at: 2025-03-19 16:22:09
Unrecoverable error 6005: Exception error:
...

Called from MAIN(551) in test.prg
O erro é no RETURN.
Não faz nenhum sentido.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Eliminei todos os init e tooltip.
Sobraram 21kb, erro continua.
test.prg
(20.91 KiB) Baixado 108 vezes
Esqueci de mencionar: em xharbour funciona.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

hwguii.png
Application Internal Error - d:\fontes\testes\hwgui_bug\test.exe
Terminated at: 2025-03-19 17:57:04
Unrecoverable error 6005: Exception error:
...
Called from MAIN(410) in test.prg
test.prg
(18.76 KiB) Baixado 121 vezes
Menor.
Não sei antes, mas conforme executa, pode ser um erro ou outro.
No primeiro, torna-se obrigatório fechar no gerenciador de tarefas.

No acaso do segundo erro, é olhar o hb_out.log, não aparece erro na tela.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Cheguei numa legal
Application Internal Error - d:\fontes\testes\hwgui_bug\test.exe
Terminated at: 2025-03-19 18:32:19
Unrecoverable error 9001: Error recovery failure
Called from __ERRINHANDLER(0)
Called from HTAB:HWG_SETFOCUS(264) in source\winapi\hcwindow.prg
Called from (b)MAIN(91) in test.prg
Called from HTAB:NOTIFY(328) in source\winapi\htab.prg
Called from ONNOTIFY(288) in source\winapi\hcwindow.prg
Called from (b)(_INITSTATICS00005)(0) in source\winapi\hcwindow.prg
Called from HWINDOW:ONEVENT(202) in source\winapi\hcwindow.prg
Called from HDIALOG:ONEVENT(239) in source\winapi\hdialog.prg
Called from HWG_DLGBOXINDIRECT(0)
Called from HDIALOG:ACTIVATE(176) in source\winapi\hdialog.prg
Called from MAIN(401) in test.prg
------------------------------------------------------------------------
Legal porque faz algum sentido pelo menos.
Isso poderia ser algo como destruir a janela da tab sem ter destruído primeiro o codeblock de notificações da tab.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Desafio para usuários hwgui

Mensagem por Itamar M. Lins Jr. »

Olá!
É pra tentar eliminar o máximo de fonte, e continuar com erro.
Fui eliminando e aqui parou o erro. Primeiro pq não sei a causa do erro. Agora parece que eu sei....

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Desafio para usuários hwgui

Mensagem por Itamar M. Lins Jr. »

Olá!
Tem 2 erros.
Esse é 1.

Código: Selecionar todos

Called from MAIN(410) in teste1.prg
------------------------------------------------------------------------
Application Internal Error - C:\dev\testes\teste1.exe
Terminated at: 2025-03-20 08:20:29
Unrecoverable error 9001: Error recovery failure
Called from __ERRINHANDLER(0)
Called from HCHECKBUTTON:SETVALUE(264) in source\winapi\hcwindow.prg
Called from (b)MAIN(341) in teste1.prg
Called from __VALID(187) in source\winapi\hcheck.prg
Called from (b)HCHECKBUTTON_NEW(55) in source\winapi\hcheck.prg
Called from ONCOMMAND(364) in source\winapi\hcwindow.prg
Called from (b)(_INITSTATICS00005)(0) in source\winapi\hcwindow.prg
Called from HTAB:ONEVENT(202) in source\winapi\hcwindow.prg
Called from HWG_DLGBOXINDIRECT(0)
Called from HDIALOG:ACTIVATE(176) in source\winapi\hdialog.prg
Called from MAIN(405) in teste1.prg
------------------------------------------------------------------------
Ele não aparecia por conta do outro (principal) que esconde os demais.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Fiz um teste alterando aqui mas não resolveu.

Código: Selecionar todos

METHOD DelControl( oCtrl ) CLASS HCustomWindow

   LOCAL h := oCtrl:handle, id := oCtrl:id
   LOCAL i

   DO WHILE .T.
      i := Ascan( ::aControls, { |o| hwg_Isptreq( o:Parent,h ) } )
      IF i == 0
         EXIT
      ENDIF
      ::DelControl( ::aControls[ i ] )
   ENDDO

   i := Ascan( ::aControls, { |o| hwg_Isptreq( o:handle,h ) } )
   hwg_Sendmessage( h, WM_CLOSE, 0, 0 )
   IF i != 0
      ADel( ::aControls, i )
      ASize( ::aControls, Len( ::aControls ) - 1 )
   ENDIF
A idéia era apagar controles-filho antes de apagar o controle-pai, caso esse fosse o problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Pera aí que a coisa endoidou.
Rodei de novo e não deu erro.
Sei lá....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

Sei lá....
Fui compilar e o programa estava em execução sem janela.
Demorou um pouco mais, mas apareceu o hb_out.log, e o programa fechou.
Até aparecia no gerenciador de tarefas, mas fechou sozinho depois de alguns segundos.
Já teve esta situação antes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desafio para usuários hwgui

Mensagem por JoséQuintas »

NÃO É HWGUI.
Acabei de gerar um erro parecido.
Application Internal Error - d:\fontes\integra\sefazclass\tests\test.exe
Terminated at: 2025-03-21 19:01:31
Unrecoverable error 6005: Exception error:

Exception Code:C0000005 ACCESS_VIOLATION
...
76180000 00025000 C:\Windows\System32\IMM32.DLL

Called from HPDF_PAGE_SETWIDTH(0)
Called from HBNFEDANFCE:NOVAPAGINA(251) in source\ze_sefaz_pdf_nfce.prg
Called from HBNFEDANFCE:GERAPDF(226) in source\ze_sefaz_pdf_nfce.prg
Called from HBNFEDANFCE:TOPDF(84) in source\ze_sefaz_pdf_nfce.prg
Called from HBNFEDAGERAL:TOPDF(179) in source\ze_sefaz_pdf_comum.prg
Called from TESTDANFE(379) in test.prg
Called from MAIN(120) in test.prg
Por isso acho que tem a ver com usar objeto que foi destruído e/ou não existe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder