@@ -21,10 +21,42 @@ developer has to learn how to debug code in order to write programs that
2121work as correctly as time and budget allow.
2222
2323
24- ### Debugging resources
24+ ### Debugging tools
25+ There are many debugging tools, some of which are built into
26+ [ IDEs] ( /text-editors-ides.html ) like [ PyCharm] ( /pycharm.html ) and others
27+ that are standalone applications. The following list contains mostly
28+ standalone tools that you can use in any
29+ [ development environment] ( /development-environments.html ) .
30+
31+ * [ pdb] ( https://docs.python.org/3/library/pdb.html ) is a debugger built
32+ into the Python standard library and is the one most developers come across
33+ first when trying to debug their programs.
34+
35+ * [ Web-PDB] ( https://github.com/romanvm/python-web-pdb ) provides a
36+ web-based user interface for pdb to make it easier to understand what is
37+ happening while inspecting your running code.
38+
39+ * [ wdb] ( https://github.com/Kozea/wdb ) uses [ WebSockets] ( /websockets.html )
40+ to allow you to debug running Python code from a web browser.
41+
42+ * [ Pyflame] ( http://eng.uber.com/pyflame/ )
43+ ([ source code] ( https://github.com/uber/pyflame ) ) is a profiling tool
44+ that generates [ flame graphs] ( http://www.brendangregg.com/flamegraphs.html )
45+ for executing Python program code.
46+
47+ * [ objgraph] ( https://mg.pov.lt/objgraph/ )
48+ ([ source code] ( https://github.com/mgedmin/objgraph ) ) uses
49+ [ graphviz] ( https://www.graphviz.org/ ) to draw the connections between
50+ Python objects running in an application
51+
52+
53+ ### Python-specific Debugging tutorials
54+ The Python ecosystem has a range of tools to help with debugging your code.
55+ These tutorials are specific to Python libraries like pdb and objgraph.
56+
2557* [ Debugging your Python code] ( http://howchoo.com/g/zgi2y2iwyze/debugging-your-python-code )
2658 walks through a scenario where
27- [ pdb] ( https://docs.python.org/2 /library/pdb.html )
59+ [ pdb] ( https://docs.python.org/3 /library/pdb.html )
2860 can be used to find a defect in a block of Python code.
2961
3062* [ pdb - Interactive Debugger] ( https://pymotw.com/2/pdb/ ) is featured on
@@ -38,6 +70,18 @@ work as correctly as time and budget allow.
3870* [ Debugging in Python] ( https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/ )
3971 elaborates on what pdb does and how it can be used.
4072
73+
74+ ### General debugging resources
75+ The following resources are not specific to Python development but
76+ give solid programming language-agnostic debugging advice.
77+
78+ * [ The art of debugging] ( https://remysharp.com/2015/10/14/the-art-of-debugging )
79+ provides a whirlwind overview for how to fix issues in your code.
80+
4181* [ How to debug JavaScript errors] ( https://rollbar.com/guides/how-to-debug-javascript/ )
4282 introduces some key debugging tools such as source maps that make
4383 identifying errors on the client side much easier during development.
84+
85+ * [ Linux debugging tools you'll love] ( https://jvns.ca/debugging-zine.pdf )
86+ is an awesome comic that covers the Linux ecosystem for debugging.
87+
0 commit comments