Conteúdo
Índice 🔎︎

# Depurar um programa do Basic

## Pontos de interrupção e execução passo a passo

Para verificar os erros nas linhas do programa Basic, pode utilizar a execução passo a passo. Os erros são facilmente encontrados, dado que pode ver imediatamente o resultado de cada passo. Um apontador na coluna do ponto de interrupção do Editor indica a linha atual. Também pode definir um ponto de interrupção se pretender interromper o programa numa posição específica.

Clique duas vezes na coluna ponto de interrupção à esquerda da janela do editor para alternar um ponto de interrupção na linha correspondente. Quando o programa atinge um ponto de interrupção, a execução do programa é interrompida.

A execução passo a passo utilizando o ícone Passo a passo faz com que o programa se ramifique em procedimentos e funções.

A execução do passo de procedimento utilizando o ícone Ignorar processo faz com que o programa salte alguns procedimentos e funções como um passo único.

### Propriedades de um ponto de interrupção

As propriedades de um ponto de interrupção estão disponíveis através do respetivo menu de contexto ao clicar com o botão direito do rato no ponto de interrupção na coluna do ponto de interrupção.

Pode ativar e desativar um ponto de interrupção selecionando Ativo no respetivo menu de contexto. Ao desativar um ponto de interrupção, não interrompe a execução do programa.

Selecione Propriedades no menu de contexto de um ponto de interrupção ou selecione Pontos de interrupção no menu de contexto da coluna do ponto de interrupção para invocar a caixa de diálogo Pontos de interrupção, na qual poderá especificar outras opções de pontos de interrupção.

A lista mostra todos os pontos de interrupção com o número da linha correspondente no código fonte. Pode ativar ou desativar um ponto de interrupção marcando ou desmarcando a caixa Ativo.

O número de passos especifica o número de vezes que um ponto de interrupção pode ser transferido antes do programa ser interrompido. Se introduzir 0 (padrão), o programa é interrompido assim que for encontrado um ponto de interrupção.

Clique em Eliminar para remover o ponto de interrupção do programa.

## Observar o valor das variáveis

Pode monitorizar os valores de uma variável adicionando-a à janela Monitorização. Para adicionar uma variável à lista de variáveis monitorizadas, digite o nome da variável na caixa de texto Monitorização e prima Enter.

Os valores das variáveis só serão mostrados se fizerem parte do âmbito. As variáveis que não forem definidas na visualização da localização do código fonte mostram ("Out of Scope") em vez de um valor.

Também pode incluir matrizes na janela de Monitorização. Se introduzir o nome de uma variável de matriz sem um valor de índice na caixa de texto de Monitorização, é mostrado o conteúdo de toda a matriz.

Se colocar o rato sobre uma variável pré-definida no Editor durante o tempo de execução, o seu conteúdo será mostrado numa caixa emergente.

## Janela Pilha de chamadas

Disponibiliza um resumo da hierarquia de procedimentos e funções da chamada. Pode determinar que procedimentos e funções invocaram outros procedimentos e funções no ponto atual no código fonte.

## Lista de erros em tempo de execução

1 Ocorreu uma exceção

2 Erro de sintaxe

3 Return sem Gosub

4 entrada incorreta; tente novamente

5 Chamada de procedimento inválido

6 Excedida a capacidade

7 Sem memória suficiente

8 Matriz já dimensionada

9 Índice fora do intervalo definido

10 Definição duplicada

11 Divisão por zero

12 Variável não definida

13 Disparidade no tipo de dados

14 Parâmetro inválido

18 Processo interrompido pelo utilizador

20 Retomar sem erros

28 Memória insuficiente

35 Procedimento Sub ou Função não definida

48 Erro ao carregar o ficheiro DLL

49 Erro na convenção de chamada da DLL

51 Erro interno

52 Erro no nome ou número do ficheiro

53 Ficheiro não encontrado

54 Erro no modo de ficheiro

55 Ficheiro já está aberto

57 Erro de E/S do dispositivo

58 O ficheiro já existe

59 Erro no comprimento do registo

61 Disco cheio

62 A leitura excede o fim de ficheiro

63 Erro no número de registo

67 Demasiados ficheiros

68 Dispositivo não disponível

70 Acesso recusado

71 Disco não preparado

73 Não implementada

74 Não é permitido mudar o nome em unidade diferentes

75 Erro de acesso ao caminho/ficheiro

76 Caminho não encontrado

91 Variável do objeto não definida

93 Padrão de cadeia inválido

94 Não pode utilizar o zero

250 Erro DDE

280 À espera de resposta à ligação DDE

281 Nenhum canal DDE disponível

282 Nenhuma aplicação respondeu ao início da ligação DDE

283 Demasiadas aplicações responderam ao início da ligação DDE

284 Canal DDE bloqueado

285 A aplicação externa não pode executar a operação DDE

286 Tempo de espera excedido ao esperar pela resposta DDE

287 O utilizador premiu ESCAPE durante a operação DDE

288 Aplicação externa ocupada

289 Operação DDE sem dados

290 Dados no formato errado

291 A aplicação externa terminou

292 Ligação DDE interrompida ou modificada

293 Método DDE invocado sem canal aberto

294 Formato de ligação DDE inválido

295 Mensagem DDE perdida

296 A ligação já foi colada

297 Não foi possível definir o modo de ligação devido a um tópico inválido

298 DDE necessita do ficheiro DDEML.DLL

323 Não é possível carregar o módulo; formato inválido

341 Índice do objeto inválido

366 Objeto indisponível

380 Valor incorreto de propriedade

382 Esta propriedade é só de leitura

394 A propriedade é só de escrita

420 Referência de objeto inválida

423 Propriedade ou método não encontrados

424 Objeto necessário

425 Utilização inválida do objeto

430 Este objeto não aceita a automatização OLE

438 O objeto não aceita esta propriedade ou método

440 Erro na automação OLE

445 O objeto indicado não aceita esta ação

446 O objeto indicado não aceita argumentos com nome

447 O objeto não tem suporte à configuração regional atual

448 Argumento nomeado não encontrado

449 O argumento não é opcional

450 Número inválido de argumentos

451 O objeto não é uma lista

452 Número ordinal inválido

453 Função DLL especificada não encontrada

460 Formato da área de transferência inválido

951 Símbolo inesperado:

952 Esperado:

953 Símbolo esperado

954 Variável esperada

955 Etiqueta esperada

956 Valor não pode ser aplicado

957 Variável já definida

958 Procedimento Sub ou função já definida

959 Etiqueta já definida

960 Variável não encontrada

961 Matriz ou procedimento não encontrado

962 Procedimento não encontrado

963 Etiqueta indefinida

964 Tipo de dados desconhecido

965 Saída esperada

966 Bloco de instrução ainda aberto: em falta

967 Parênteses não coincidentes

968 Símbolo já definido de forma diferente

969 Parâmetros não correspondem ao procedimento

970 Carácter inválido no número

971 A matriz deve ser dimensionada

972 Else/Endif sem If

973 não permitido dentro de um procedimento

974 não permitido fora de um procedimento

975 Especificações da dimensão não coincidentes

976 Opção desconhecida:

977 Constante redefinida

978 Programa demasiado grande

979 Cadeias ou matrizes não permitidas

1000 O objeto não tem esta propriedade

1001 O objeto não tem este método

1002 Falta o argumento necessário

1003 Número invalido de argumentos

1004 Erro ao executar um método

1005 Incapaz de definir a propriedade

1006 Incapaz de determinar a propriedade