2017-10-16 14 views
1

pdbのdisplayコマンドは、変数全体が割り当てられている場合にのみ式を表示するようです。python3 pdb表示リスト

pass 
foo = [1, 2, 3] 
foo[0] = 8 
foo.append(7) 
pass 

python3 -m pdb bar.pyで上記のコードを実行し、その後display fooに入るとき私が得る出力は、次のとおり

> bar.py(2)<module>() 
-> foo = [1, 2, 3] 
(Pdb) display foo 
display foo: ** raised NameError: name 'foo' is not defined ** 
(Pdb) n 
> bar.py(3)<module>() 
-> foo[0] = 8 
display foo: [1, 2, 3] [old: ** raised NameError: name 'foo' is not defined **] 
(Pdb) 
> bar.py(4)<module>() 
-> foo.append(7) 
(Pdb) 
> bar.py(5)<module>() 
-> pass 
(Pdb) foo 
[8, 2, 3, 7] 
(Pdb) 

NameErrorとディスプレイの最初の出力が期待されます。 最初の項目が変更されたときや、7を追加したときにディスプレイが変更されたfooが表示されないようです。

これらの変更をpdbに伝える方法はありますか? display str(foo)は仕事をしているようですが、より良い解決策があるかどうか疑問に思っています。

答えて

0

はい、これらの変更を追跡する方法は、代わりに'p'コマンドです。この例を参照してください

> /home/maksim/Projects/Python/basic/test.py(2)<module>() 
-> foo = [1, 2, 3] 
(Pdb) s;;l;;p foo 
> /home/maksim/Projects/Python/basic/test.py(3)<module>() 
-> foo[0] = 8 
    1  pass 
    2  foo = [1, 2, 3] 
    3 -> foo[0] = 8 
    4  foo.append(7) 
    5  pass 
    6  
    7  
    8  
[EOF] 
[1, 2, 3] 
(Pdb) s;;l;;p foo 
> /home/maksim/Projects/Python/basic/test.py(4)<module>() 
-> foo.append(7) 
    1  pass 
    2  foo = [1, 2, 3] 
    3  foo[0] = 8 
    4 -> foo.append(7) 
    5  pass 
    6  
    7  
    8  
[EOF] 
[8, 2, 3] 
(Pdb) s;;l;;p foo 
> /home/maksim/Projects/Python/basic/test.py(5)<module>() 
-> pass 
    1  pass 
    2  foo = [1, 2, 3] 
    3  foo[0] = 8 
    4  foo.append(7) 
    5 -> pass 
    6  
    7  
    8  
[EOF] 
[8, 2, 3, 7] 
(Pdb) s;;l;;p foo 
--Return-- 
> /home/maksim/Projects/Python/basic/test.py(5)<module>()->None 
-> pass 
    1  pass 
    2  foo = [1, 2, 3] 
    3  foo[0] = 8 
    4  foo.append(7) 
    5 -> pass 
    6  
    7  
    8  
[EOF] 
[8, 2, 3, 7] 
(Pdb) 
+0

あなたのコメントありがとうございますが、私の質問に完全に答えていません。 fooの内容が変更されていなくても、印刷したいのは避けたかったでしょう。 – jbl

+0

ああ、私は...はい、あなたは正しいとは思わない。より良いものが出てくると私はコメントを投稿します。コメントする代わりに申し訳ありません。私の評判は今のところ18ポイントしかないので、ユーザーの質問はコメントできませんが、自分のコメントはコメントできません。お返事をありがとうございます。 –

関連する問題