Próximo: Comandos Palavra Chave, Acima: Depurando [Conteúdo][Índice]
Maxima tem um depurador interno de código fonte. O usuário pode escolher um ponto de parada em uma função, e então caminhar linha por linha a partir daí. A pilha de chamadas po ser examinada, juntamente com as variáveis associadas àquele nível.
O comando :help
ou :h
mostra a lista de comando de depuração.
(Em geral,
comandos podem ser abreviados se a abreviação for única. Se não for
única, as alternativas podem ser listadas.)
Dentro do depurador, o usuário pode também usar qualquer funções comuns
do Maxima para examinar, definir, e manipular variáveis e expressões.
Um ponto de parada é escolhido através do comando :br
na linha de comando do Maxima.
Dentro do depurador,
o usuário pode avançar uma linha de cada vez usando o comando :n
(“next”).
o comando :bt
(“backtrace”) mostra uma lista da pilha de frames.
O comando :r
(“resume”) sai do depurador e continua com a execução.
Esses comandos são demostrados no exemplo abaixo.
(%i1) load ("/tmp/foobar.mac"); (%o1) /tmp/foobar.mac (%i2) :br foo Turning on debugging debugmode(true) Bkpt 0 for foo (in /tmp/foobar.mac line 1) (%i2) bar (2,3); Bkpt 0:(foobar.mac 1) /tmp/foobar.mac:1:: (dbm:1) :bt <-- :bt digitado aqui lista os frames #0: foo(y=5)(foobar.mac line 1) #1: bar(x=2,y=3)(foobar.mac line 9) (dbm:1) :n <-- Aqui digite :n para avançar linha (foobar.mac 2) /tmp/foobar.mac:2:: (dbm:1) :n <-- Aqui digite :n para avançar linha (foobar.mac 3) /tmp/foobar.mac:3:: (dbm:1) u; <-- Investiga o valor de u 28 (dbm:1) u: 33; <-- Altera u para ser 33 33 (dbm:1) :r <-- Digite :r para retomar a computação (%o2) 1094
O arquivo /tmp/foobar.mac
é o seguinte:
foo(y) := block ([u:y^2], u: u+3, u: u^2, u); bar(x,y) := ( x: x+2, y: y+2, x: foo(y), x+y);
USO DO DEPURADOR ATRAVÉS DO EMACS
Se o usuário estiver rodando o código sob o GNU emacs em uma janela shell (shell dbl), ou está rodando a versão de interface gráfica, Xmaxima, então se ele para em um ponto de parada, ele verá sua posição corrente no arquivo fonte a qua será mostrada na outra metade da janela, ou em vermelho brilhante, ou com um pequeno seta apontando na direita da linha. Ele pode avançar uma linha por vez digitando M-n (Alt-n).
Sob Emacs você pode executar em um shell dbl
, o qual requer o
arquivo dbl.el
no diretório elisp.
Tenha certeza que instalou os arquivos elisp ou adicionou o diretório elisp do Macima ao
seu caminho:
e.g., adicione o seguinte ao seu arquivo .emacs ou ao seu arquivo site-init.el
(setq load-path (cons "/usr/share/maxima/5.9.1/emacs" load-path)) (autoload 'dbl "dbl")
então no emacs
M-x dbl
pode iniciar uma janela shell na qual você pode executar programas, por exemplo Maxima, gcl, gdb etc. Essa janela de shell também reconhece informações sobre depuração de código fonte, e mostra o código fonte em outra janela.
O usuário pode escolher um ponto de parada em certa linha do
arquivo digitando C-x space
. Isso encontra qual a função
que o cursor está posicionado, e então mostra qual a linha daquela função
que o cursor está habilitado. Se o cursor estiver habilitado, digamos, na linha 2 de foo
, então isso irá
inserir na outra janela o comando, “:br foo 2
”, para
parar foo
nessa segunda linha. Para ter isso habilitado, o usuário deve ter
maxima-mode.el habilitado na janela na qual o arquivo foobar.mac
estiver interagindo.
Existe comandos adicional disponíveis naquela janela de arquivo, tais como
avaliando a função dentro do Maxima, através da digitação de Alt-Control-x
.
Próximo: Comandos Palavra Chave, Acima: Depurando [Conteúdo][Índice]