This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年05月08日 13:00 by xdegaye, last changed 2022年04月11日 14:57 by admin.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| pdb_default.patch | xdegaye, 2012年05月08日 13:00 | |||
| pdb_default_2.patch | xdegaye, 2012年05月13日 15:48 | |||
| Messages (2) | |||
|---|---|---|---|
| msg160202 - (view) | Author: Xavier de Gaye (xdegaye) * (Python triager) | Date: 2012年05月08日 13:00 | |
When a breakpoint is set in one of the frames of the frame stack, Pdb may not stop at that breakpoint when the frame does not have a trace function. This problem is closely related to issue 13183 and issue 14728. The following scenario demonstrates this problem. ==== main.py ================================ import bar def foo(): bar.bar() x = 1 foo() ==== bar.py ================================== def bar(): pass ================================================= $ python3 -m pdb main.py > /path_to/main.py(1)<module>() -> import bar (Pdb) import sys; print(sys.version) 3.2.2 (default, Dec 27 2011, 17:35:55) [GCC 4.3.2] (Pdb) break bar.bar Breakpoint 1 at /path_to/bar.py:1 (Pdb) continue > /path_to/bar.py(2)bar() -> pass (Pdb) break main.py:5 Breakpoint 2 at /path_to/main.py:5 (Pdb) continue The program finished and will be restarted > /path_to/main.py(1)<module>() -> import bar (Pdb) quit ================================================= The attached patch fixes this problem. A test case is included in the patch. The patch is made against the proposed fix of issue 14728 (i.e. assumes this patch is applied), the reason being that self._curframe must be correctly set. Actually this issue and issue 14728 should probably be merged. Note that the trace function does not need anymore to be set in all the frames of the frame stack in set_trace(), so setting the trace function has been removed from the while loop. |
|||
| msg160518 - (view) | Author: Xavier de Gaye (xdegaye) * (Python triager) | Date: 2012年05月13日 15:48 | |
Uploaded pdb_default_2.patch that corrects the initial patch: the trace function must be set in all frames whose co_filename is the breakpoint file name and not just the first frame of this set. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:30 | admin | set | github: 58956 |
| 2012年05月13日 15:48:49 | xdegaye | set | files:
+ pdb_default_2.patch messages: + msg160518 |
| 2012年05月08日 13:00:17 | xdegaye | create | |