Ajude o site desativando o bloqueador de anúncio
Cabeçalho

ADVPL - Listar pilha de chamada - ProcPilha

Autor: Eurai Criado: 13/08/2021 Atualizado: 15/11/2025 ADVPL
Postagem

Funções ADVPL para Verificação e Listagem da Pilha de Execução

Neste artigo, compartilho duas funções úteis para quem trabalha com ADVPL: uma para verificar se uma função existe na pilha e outra para listar toda a pilha de chamadas diretamente no console.

A função de listagem pode ser facilmente adaptada para registrar informações em LOG, caso seja necessário monitorar fluxos específicos da aplicação.

Os exemplos completos estão disponíveis no meu GitHub.

A função de verificação de pilha é semelhante às nativas FWISINCALLSTACK e ISINCALLSTACK.

Função: Listar Pilha de Chamada

/*/{Protheus.doc} UDPILHALISTAR
Lista pilha de chamada no console

@author     Eurai Rapelli
@since      22.05.2012

@obs        Conteúdo pode ser utilizado desde que respeite as referencias do autor.

@see        https://www.udesenv.com.br
/*/
User Function UDPILHALIST()
Local n := 1

Do While !Empty( ProcName( n ) )
    Conout( AllTrim( ProcName( n++ ) ) )
EndDo

Return( Nil )

Função: Verificar se Função Existe na Pilha

/*/{Protheus.doc} PILHAEXISTE
Procura na pilha função

@author     Eurai Rapelli
@since      22.05.2012

@return     lRet    , Boolean   , Retorno

@obs        Conteúdo pode ser utilizado desde que respeite as referencias do autor.

@see        https://www.udesenv.com.br
/*/
User Function UDPILHAEXIST( cFuncao )
Local nI    := 0
Local lRet  := .F.
Local cRot  := Upper( AllTrim( ProcName( nI ) ) )

cFuncao := Upper( AllTrim( cFuncao ) )

Do While !Empty(cRot)
    
    If cFuncao $ cRot
        lRet := .T.
        Exit
    Else
        nI      := nI + 1
        cRot    := Upper( AllTrim( ProcName( nI ) ) )
    Endif
    
EndDo

Return( lRet )

Finalizando

Gostou do conteúdo? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço e até a próxima!

ASSINE A NEWSLETTER

Cadastrando...

PIX uDesenv

PIX QR Code para depósito

Clique para doar

Parceiros

Tudo em ADVPL - Blog parceiro

Blog ADVPL