Sugestão:
Erro é pra ser mostrado, não pra ser escondido.
Coloque pra mostrar o conteúdo das variáveis.
Código: Selecionar todos
STATIC FUNCTION ArgumentList( e )
LOCAL xArg, cArguments := ""
IF ValType( e:Args ) == "A"
FOR EACH xArg IN e:Args
cArguments += [(] + Ltrim( Str( xArg:__EnumIndex() ) ) + [) = Tipo: ] + ValType( xArg )
IF xArg != NIL
cArguments += [ Valor: ] + Alltrim( hb_ValToExp( xArg ) )
ENDIF
cArguments += hb_Eol()
NEXT
ENDIF
RETURN cArguments
Isso mostraria as variáveis envolvidas no erro com o conteúdo.
Tive esse problema com 3.4 e 3.2.
O detalhe curioso era mostrar ZERO como conteúdo, e não NIL
Eventualmente isso retornava 0 (zero).
Eventualmente mesmo, 1 vez por mes, em um terminal.
Não só essa, outras funções/classes também.
Pra mim pareciam muitos erros, mas era porque vinham de terminais diferentes, de locais diferentes.
Adotei multithread de vez, não resolveu, mas se tornaram mais eventuais ainda, uma vez por mês ou menos, juntando todos os terminais de todos os clientes.
Faz tempo que não vejo esse erro, não mexi nada no aplicativo sobre ele.
O mais engraçado:
Atualmente o EXE é compilado com GTWVG, HWGUI e FIVEWIN, tudo no mesmo EXE.
Agora sim, poderia ser considerado normal qualquer problema desse tipo, mas não dá kkkk.
Atualmente usando mingw 14.2/15.0.
O principal motivo de atualizar mingw foi o EXE 32 bits trabalhar com 4GB de memória, versões anteriores limitavam a 2GB.
E mingw DWARF, porque as LIBs fivewin não trabalham com outra, e não podemos recompilar a LIB, qualquer versão de mingw DWARF serve.
Se isso fez diferença para o problema não sei, acredito que não, porque lembro de ter voltado pra 7.3 pra ver se resolvia.
Também não fez diferença mudar de 3.4 pra 3.2.
Contribuo pra algumas LIBs, e o HBMK2 do 3.4 tem recursos que não estão disponíveis no 3.2.
Comecei a incluir recursos que não estavam disponíveis, e atrapalhando as LIBs.
Só por isso troquei, pra ficar igual todo mundo e poder continuar contribuindo.
No meu caso sempre usei GTWVG, a multithread não era 100% liberada aos clientes, até o problema acontecer.
Depois que liberei, eles não querem que remova kkkk
Talvez interessante comentar o que usa.