https://github.com/flatironinstitute/learn-sciware-dev/tree/master/13_Debugging
Activities where participants all actively work to foster an environment which encourages participation across experience levels, coding language fluency, technology choices*, and scientific disciplines.
*though sometimes we try to expand your options
- Avoid discussions between a few people on a narrow topic
- Provide time for people who haven't spoken to speak/ask questions
- Provide time for experts to share wisdom and discuss
- Work together to make discussions accessible to novices
- If comfortable, please keep video on so we can all see each other's faces.
- Ok to break in for quick, clarifying questions.
- Use Raise Hand feature for new topics or for more in-depth questions.
- Please stay muted if not speaking. (Host may mute you.)
- We are recording. Link will be posted on #sciware Slack.
- Sciware Office Hour follow-up discussion in 2 weeks (Mar 18)
- Advanced testing (test frameworks, strategies, TTD, etc.) (TBD, soliciting contributors...)
- Suggest topics and vote on options in #sciware Slack
- Introduction to debugging: goals and strategies (Jeff Soules, CCM + Miles Stoudenmire, CCQ)
- TotalView (Marsha Berger, CCM)
- lldb (Nils Wentzell, CCQ)
- Dynamic analyzers (Nils & Lehman)
- Python debuggers (Lehman Garrison, CCA)
- backtrace, stacktrace: a state of a running/crashed program, the sequence of (nested) function calls leading to the current line of code
- coredump, core file: a file (
/tmp/core.UID-PROG.PID
), produced when a program crashes in certain ways (*NULL
,abort()
), if enabled (ulimit -c unlimited
) - Heisenbug: a bug that goes away when you try to debug it
- debugger, interactive debugging: a tool to let you watch your program as it runs, one line at a time
- wolf fence debugging, bisection: finding a bug by recursively dividing your code and seeing which part fails (commenting out lines or reverting some changes)