How to debug without entering external libraries?

  • 10
  • 29

"Think about this scenario:

I debug my Django project and I step through the code (in and out). The debugger sometimes enters Django libraries or other external libraries.

Does anyone know how to prevent the debugger from entering external code? Or at least a 'big' step out to get the debugger back to the project code?"

Dan at http://stackoverflow.com/q/15164565/95735
Is there anybody here? :)

I usually just hit F8 when stepping over an external function call.

F7 will step-into that function.
F9 will skip to the next break point.

Are you getting into the external library using f8 as you step through your code?

Hi Piotr, you've got an answer already on the Stackoverflow, but all the same: Use Step Out (Shift + F8)

Marcel, Dmitry:

The whole point of the question is how to skip external libraries automatically not manually. Does PyCharm use pdb under the covers? If so could it use the "skip" argument which I talk about in my answer at http://stackoverflow.com/a/15186219/95735 ? Btw, OP is aware of Step Out as he notes in his comment - "Indeed Shift+F8 is what I have used so far, I just found it *tedious and a waste of time.*"

Overall I think this would be a really great feature to have!

No, PyCharm does not use pdb. Yes, it will be useful to have this option. You're welcome to vote for http://youtrack.jetbrains.com/issue/PY-9101
--
Dmitry Jemerov, Chief Technology Officer, JetBrains

@Dmitry

Thanks for your help and for creating issue PY-9101 - I updated my answer at SO with the link to this issue.

Btw, you can do it now already if you add modules you don't want to trace to the dict DONT_TRACE in <pycharm-distr>/helpers/pydev/pydevd.py
That is a hacky solution but all the same.

Does the DONT_TRACE dict work with paths, or only with individual files? Does it work only with python code, or also with JS? Thanks!

It works only with Python individual file names.

I can efficiently debug the class library from B while running the program from project A. Is there something i have to enable on project B such as debug info etc so i can step-into at debug time from A?