Skip to content

Erro de execução com Lazarus 3.0, FPC 3.2.2, Ubuntu 23.10 e Horse Trunk #360

@edsontmarques

Description

@edsontmarques

Criei um projeto simples de teste com o código de exemplo que encontra-se em https://github.com/HashLoad/horse.
Configurei o Project Options definindo os Build Modes padrões criados pelo Lazarus (Project Options > Compiler Options > Botão '...' no topo do form).
Com isso o Lazarus cria os Build Modes "Release" e "Debug".
Ajustei o Build Mode para Debug e Rodei a API básica com o Lazarus.
Entrei no Firefox e enviei a requisição "localhost:9000/ping".

O Lazarus levantou uma exceção de "Invalid Typecast" na unit Horse.Core.RouterTree.NextCaller linha 89.
Deixei continuar a execução e o firefox me mostrou o seguinte retorno:

`The application encountered the following error:

Error: Invalid type cast
Stack trace:
$00000000005DE23D Next, line 89 of ../../../../../frameworks/fpc/horse/src/Horse.Core.RouterTree.NextCaller.pas
$00000000004E566F ExecuteInternal, line 187 of ../../../../../frameworks/fpc/horse/src/Horse.Core.RouterTree.pas
$00000000004E5401 Execute, line 149 of ../../../../../frameworks/fpc/horse/src/Horse.Core.RouterTree.pas
$00000000005E050A HandlerAction, line 94 of ../../../../../frameworks/fpc/horse/src/Horse.WebModule.pas
$00000000005E03CB DoOnRequest, line 79 of ../../../../../frameworks/fpc/horse/src/Horse.WebModule.pas
$00000000005E13A4`

Fazendo alguns testes na configuração do Build Mode Debug gerado pelo Lazarus, percebi que se Desligarmos o parâmetro Project Options > Compiler Options > Debugging > Checks and assertion > Verify method calls (-CR) , o erro acima não acontece e o retorno para requisição é "Pong", como esperado.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglazarus

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions