Próximo: Comandos Palavra Chave, Acima: Depuração [Conteúdo][Índice]
Maxima tem um depurador interno de código fonte. O utilizador pode escolher um ponto de parada numa função, e executar o programa linha por linha a partir daí. A pilha de chamadas pode ser examinada, juntamente com as variáveis existentes nesse nível.
O comando :help
ou :h
mostra a lista de comandos de
depuração. (Em geral, os comandos podem ser abreviados se a
abreviação for única. Se não for única, as alternativas
podem ser listadas.) Dentro do depurador, o utilizador pode também
usar quaisquer 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 utilizador 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 a seguir.
(%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 ficheiro /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 E DE XMAXIMA
Se o utilizador estiver a executar o código sob o GNU Emacs numa janela
shell (shel dbl), ou estiver usando a interface gráfica,
xmaxima
, então quando parar num ponto de parada, verá a sua
posição actual no ficheiro fonte apresentada na
outra metade da janela, ou em vermelho brilhante, ou com uma pequena
seta apontando na direita da linha. Poderá avançar uma linha por
vez digitando M-n (Alt-n).
No Emacs pode executar o Maxima numa shell dbl
, o qual requer o
ficheiro dbl.el
no directório elisp.
Verifique que tenha instalado os ficheiros elisp ou adicionado o directório elisp do Maxima ao seu caminho:
e.g., adicione o seguinte ao seu ficheiro .emacs ou ao seu ficheiro
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 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 utilizador pode escolher um ponto de parada em certa linha do
ficheiro digitando C-x space
. Isso encontra qual a função
onde o cursor está posicionado, e mostra qual a linha daquela função
onde 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 utilizador deve ter
maxima-mode.el habilitado na janela na qual o ficheiro foobar.mac
estiver interagindo.
Existe comandos adicional disponíveis naquela janela de ficheiro, tais como
avaliando a função dentro do Maxima, através da digitação de Alt-Control-x
.
Próximo: Comandos Palavra Chave, Acima: Depuração [Conteúdo][Índice]