就是说, pdb 监控程序,当满足某个条件(譬如某个变量 == 某个值), 程序暂停.
我现在不知道某个变量是在哪里被赋的值. 如果有这个功能就很容易了,要不然只能单步, 慢慢看.
1 jhdsgfww 2021-01-24 11:55:51 +08:00 用 ipdb 直接写在代码里面试一下? ```python import ipdb # some codes here. if somevar == somevalue: ipdb.set_trace() # some codes here. ``` |
![]() | 2 labubu 2021-01-24 11:57:36 +08:00 pycharm 不是有吗? |
![]() | 3 j0hnj 2021-01-24 11:57:37 +08:00 via iPhone pycharm 在断点上右键可以设置 |
![]() | 4 UN2758 2021-01-24 11:58:26 +08:00 有啊, |
![]() | 5 UN2758 2021-01-24 11:58:51 +08:00 ![]() |
6 xiaolinjia 2021-01-24 12:00:54 +08:00 或许你可以试试,pysnooper 这个库。 |
![]() | 7 cabing 2021-01-24 12:07:54 +08:00 改用微软的 vscode,一级棒。 |
![]() | 8 milkpuff 2021-01-24 23:00:21 +08:00 python 代码里面可以直接调用 breakpoint()函数 |
![]() | 9 tiedan 2021-01-25 09:56:05 +08:00 在断点直接右键可以添加触发条件 |
10 reed2020 2021-01-25 10:56:35 +08:00 右击 PyCharm 的断点红点就有 |
11 cyhlnj 2021-01-25 11:08:21 +08:00 学到了 |
![]() | 12 no1xsyzy 2021-01-25 13:35:25 +08:00 ![]() 修改断点设置有点不对吧,连在哪赋值的都不知道…… 1. (不管哪个) IDE 能够自动选中所有变量引用( PyCharm 默认 Alt+F7 ) 2. Pysnooper ? Cyberbrain ? 3. 如果是属性值,可以迅速转写成一个 property 并在 setter 里加断点。 4. 二分法 trace 。 |