This week we'll be doing at least two short-form talks, instead of one long-form talk. Meetup regular Jeff Trull will be rehearsing a 30-minute session that he'll be giving at CppCon in September. Then, also-meetup-regular Ori Bernstein will explain futexes.
Jeff Trull — "Liberating the Debugging Experience with the GDB Python API"
While C++ has continued to evolve to ever higher levels of complexity, debuggers like gdb have largely stayed within their historic, C-oriented feature sets. One compensating advancement is gdb's Python API, which gives programmatic access to most of gdb's features. Using this API, developers can create tools that improve the debugging experience for modern C++ and for their specific codebases.
gdb's Python API provides facilities to create new commands, add and remove breakpoints, improve the printed display of types, manipulate stack traces, get information on variables, and access most features of gdb. Combined with the vast array of libraries available in Python, remarkably powerful tools can be built.
Jeff will begin by demonstrating the creation of custom commands and parameters, then move on to the use of the pretty printing and stack frame filtering APIs. He will then show some tools built by combining gdb features with external Python libraries, such as an improved single-step command using libClang, graphical visualization of algorithm execution, and custom debugging accelerators for specific problem areas.
Jeff Trull is a former microprocessor designer and current C++ consultant. He is something of a conference junkie. His interests include numerics — especially for modeling linear systems — performance analysis, and tooling of all kinds.
Ori Bernstein — "Introducing Futexes"
Ori will give a description of what a futex is, how some common concurrency primitives are built on them, and summarize how several operating systems implement them.
Ori Bernstein appears to be made of meat.