From 1d415b80e1058dd340234c4cda00b5759b543a03 Mon Sep 17 00:00:00 2001 From: Diego Garcia <drgarcia1986@gmail.com> Date: Tue, 10 Feb 2015 23:06:57 -0200 Subject: [PATCH 1/2] remove image style --- content/publicando_seu_hello_world_no_heroku.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/publicando_seu_hello_world_no_heroku.md b/content/publicando_seu_hello_world_no_heroku.md index 47b8ca59e..47b727cea 100644 --- a/content/publicando_seu_hello_world_no_heroku.md +++ b/content/publicando_seu_hello_world_no_heroku.md @@ -13,7 +13,7 @@ Category: heroku <figure style="float:left;"> -<img style="border-radius: 50%;" src="/images/drgarcia1986/heroku.png"> +<img src="/images/drgarcia1986/heroku.png"> </figure> </br> From 33be141c143224ac46160833b502a2068269ce9e Mon Sep 17 00:00:00 2001 From: Diego Garcia <drgarcia1986@gmail.com> Date: Wed, 11 Feb 2015 08:54:04 -0200 Subject: [PATCH 2/2] add post debugging em python sem ide --- content/debugging-em-python-sem-ide.md | 243 ++++++++++++++++++++++ content/images/drgarcia1986/debugging.png | Bin 0 -> 23964 bytes 2 files changed, 243 insertions(+) create mode 100644 content/debugging-em-python-sem-ide.md create mode 100644 content/images/drgarcia1986/debugging.png diff --git a/content/debugging-em-python-sem-ide.md b/content/debugging-em-python-sem-ide.md new file mode 100644 index 000000000..655434b94 --- /dev/null +++ b/content/debugging-em-python-sem-ide.md @@ -0,0 +1,243 @@ +title: Debugging em python (sem IDE) +Slug: debugging-em-python-sem-ide +Date: 2015-02-11 11:30 +Tags: python,pdb,ipython,ipdb,debugging +Author: Diego Garcia +Email: drgarcia1986@gmail.com +Github: drgarcia1986 +Site: http://www.codeforcloud.info +Twitter: drgarcia1986 +Linkedin: drgarcia1986 +Category: debugging + + +<figure style="float:right;"> +<img src="/images/drgarcia1986/debugging.png"> +</figure> +</br> +Um dos principais motivos que ainda levam desenvolvedores Python a recorrerem a IDEs pesadas e que requerem instalação é o **debugging**. +Devs que vieram de linguagens como _DotNet_, _Java_ e _Delphi_ por exemplo, estão acostumados a IDEs super pesadas e inchadas que no final das contas, além do debugging, só servem para drenar memória RAM. +Brincadeiras a parte, não a motivos para você não dar uma chance ao **VIM** ou ao **Sublime**, pois para fazer debugging em scripts python, tudo que você precisa é o **PDB**. + +<!-- MORE --> + +# PDB +O `pdb` é um módulo _buit-in_ que funciona como um console interativo, onde é posssível realizar debug de códigos python. +Nele é possível fazer um _step-by-step_ do código, verificando o valor de variaveis, definindo breakpoints, manipulando valores, etc. +É possível inclusive realizer _step-into_ em métodos. Ou seja, tudo que uma boa ferramenta de debug precisa ter. + +## Comandos +Antes de partirmos para prática, é importante conhecer alguns comandos básicos para já começar o uso do pdb de forma efetiva. + +Durante o debugging, eventualmente seu script irá _estacionar_ em pontos de paradas, possívelmente definidos por você, neste momento, os comandos a seguir poderão ser utilizados. + +### q (quit) +Sai da execução do script. + +### n (next) +Avança para a próxima linha do script. + +### p (print) +Executa o comando `print` do python, por exemplo: +```python +> /script.py(1)<module>() +-> foo = "foo var" +(Pdb) p foo +'foo var' +``` +> Vale ressaltar que no exemplo acima, não é necessário utilizar o comando `p`, basta digitar o nome da variável e pressionar `enter`, o efeito seria o mesmo. +### c (continue) +Avança o debug até o próximo **breakpoint** ou até ocorrer uma **exception**. + +### l (list) +Lista algumas linhas do código que estão em volta da linha atual. +Por padrão serão apresentadas 11 linhas (5 a cima e 5 a baixo). + +### s (step into) +Ao realizar a navegação através do comando `n` o debug **não** irá _entrar_ em métodos que possívelmente forem invocados. +Para que o debug entre no método que está sendo invocado na linha corrente, basta trocar o comando `n`, pelo comando `s`. +```python +> /home/user/foo.py(20)<module>() +-> foo.bar('barz') +(Pdb) s +--Call-- +> /home/user/foo.py(3)bar() +-> def bar(self, the_bar): +(Pdb) +``` + +### r (return) +Já o comando `r` libera a execução do script até sair da função atual. + +### b (breakpoint) +Cria um breakpoint em uma determinada linha ou método, por exemplo. +```python +> /script.py(1)<module>() +(Pdb) b 21 +Breakpoint 1 at /script.py:21 +``` +No comando a cima, setamos um breakpoint na linha 21 de nosso script. +```python +> /script.py(1)<module>() +(Pdb) b foo +Breakpoint 1 at /script.py:30 +``` +Já no exemplo acima, setamos o breakpoint para o método `foo`. +O pdb informa qual linha ele setou o breakpoint, em nosso exemplo o método `foo` está na linha 30 do script. + +### a (arguments) +O comando `a` mostra os argumentos que foram passados para a função atual. + +```python +> /home/user/foo.py(20)<module>() +-> foo.bar('barz') +(Pdb) s +--Call-- +> /home/user/foo.py(3)bar() +-> def bar(self, the_bar): +(Pdb) a +the_bar = "barz" +``` + +### ENTER +Se você precionar o `ENTER` sem nenhum comando no pdb, ele irá repetir o último comando executado. + +## Debug na prática +Vamos utilizar um script python simples e didático como exemplo. + +```python +class NumberList(object): + def __init__(self): + self.numbers = list() + + def add(self, number): + if not isinstance(number, (int, float)): + raise TypeError + self.numbers.append(number) + + def sum(self): + result = 0 + for i in self.numbers: + result += i + return result + + +if "__main__" == __name__: + numbers = NumberList() + + numbers.add(5) + assert numbers.sum() == 5 + + numbers.add(10) + assert numbers.sum() == 15 + + print "The End" +``` +Esse script possui uma classe chamada `NumberList` que armazena uma lista de numeros e retorna a soma deles. +Além destas classe, esse script também realiza algumas operações como instaciar essa classe e realizar alguns testes de asserção. +Salve esse script em um arquivo chamado `numbers.py` para ser utilizado em nossos exemplos. + +## Modos de uso do pdb + +Na prática o pdb se assemelha bastante ao prompt interativo do python, com a diferença dos caracteres identificadores. +Enquanto que no prompt interativo do python o identificador é o `>>>`, no pdb o identificador é `(Pdb)`. +Existem algumas maneiras de usar o pdb, depende da forma como você pretende realizer o debbug. + +### pdb.py +Uma delas é através da chamada do script `pdb.py` passando como paramêtro o script para ser feito do debug, por exemplo: + +```bash +python -m pdb numbers.py +``` +Isso fará com o pdb seja iniciado na primeira linha do script `numbers.py`, no caso, a declaração da classe `NumberList()`. +Caso você execute o comando `n`, a próxima linha será o `if "__main__" == __name__:` e assim por diante. +Utilizando desta maneira, você pode verificar linha a linha do script ou _setar_ um breakpoint assim que entrar no debug, por exemplo, se você quer criar um breakpoint na execução do método `sum()` de uma instância da classe `NumberList()`, basta executar o comando `b numbers.sum`. + +```python +(venv)user@machine:~/$ python -m pdb numbers.py +> /home/user/numbers.py(4)<module>() +-> class NumberList(object): +(Pdb) n +> /home/user/numbers.py(20)<module>() +-> if __name__ == "__main__": +(Pdb) n +> /home/user/numbers.py(21)<module>() +-> numbers = NumberList() +(Pdb) n +> /home/user/numbers.py(23)<module>() +-> numbers.add(5) +(Pdb) b numbers.sum +Breakpoint 1 at /home/user/numbers.py:13 +(Pdb) +``` + +Ou para simplificar, também poderiamos setar o breakpoint pelo número da linha. + +```python +(venv)user@machine:~/$ python -m pdb numbers.py +> /home/user/numbers.py(4)<module>() +-> class NumberList(object): +(Pdb) b 13 +Breakpoint 1 at /home/user/numbers.py:13 +(Pdb) +``` +### pdb.set_trace() +Outra forma é utilizando o método `set_trace()` do pacote `pdb`. +Com o `pdb.set_trace()` você pode definir onde será o seu breakpoint via código, por exemplo, faremos uma alteração em nosso script para setar um breakpoint no método `NumberList().sum()`. +```python +import pdb + + +class NumberList(object): + def __init__(self): + self.numbers = list() + + def add(self, number): + if not isinstance(number, (int, float)): + raise TypeError + self.numbers.append(number) + + def sum(self): + pdb.set_trace() + + result = 0 + for i in self.numbers: + result += i + return result + +""" +Resto do script omitido +""" +``` +Dessa forma, ao executar o script (sem a necessidade de ser via pdb) e passar pelo método `pdb.set_trace()` será iniciado um prompt interativo do pdb. + +```python +(venv)user@machine:~/$ python numbers.py +> /home/user/numbers.py(16)sum() +-> result = 0 +(Pdb) +``` + +## ipdb +Uma das desvantagens do prompt interativo do python é a falta de _syntax highlighting_ e _code completion_, com o pdb não é diferente, porém, assim como podemos recorrer ao [ipython](http://ipython.org/) para isso, também podemos utilizar o [ipdb](https://github.com/gotcha/ipdb). +O `ipdb` é uma espécie de wrapper para o pdb que faz uso das rotinas de debug do `IPython`. +A maneira de uso se assemelha bastante ao pdb, bastando trocar o pacote `pdb` pelo pacote `ipdb`. + +```python +import ipdb + +foo = "foo" +ipdb.set_trace() +bar = "bar" +``` + +Para instalar o ipdb basta utilizar o `pip` + +``` +pip install ipdb +``` +Com certeza recomendo o uso do `ipdb` principalmente por ser mais intuitivo. + +**Referências**<br \> +[Documentação Oficial](https://docs.python.org/2/library/pdb.html)<br /> +[ipdb](https://github.com/gotcha/ipdb) diff --git a/content/images/drgarcia1986/debugging.png b/content/images/drgarcia1986/debugging.png new file mode 100644 index 0000000000000000000000000000000000000000..25cb69bbb9c3f6db6913fe4af32c5a15dadd0910 GIT binary patch literal 23964 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 literal 0 HcmV?d00001