Frame pointers: Untangling the unwinding
Explore how frame pointers can be used to unwind Linux kernel stack traces and examine different ways to obtain a backtrace, along with their pros and cons.
Explore how frame pointers can be used to unwind Linux kernel stack traces and examine different ways to obtain a backtrace, along with their pros and cons.
Learn how the FORTIFY_SOURCE feature in the GNU C library improves C code security by detecting and preventing buffer overflow, and more.
Get an introduction to ISystemTap, a Jupyter kernel for Linux operating systems that helps you write and run SystemTap scripts.
Get an overview of what's new in GCC 13, the latest GNU Compiler Collection release, including bug fixes and new features in the C++ front end.
Discover the benefits of the Fedora 38 new feature for ppc64le. Now Clang uses the IEEE 128-bit long double by default.
The GNU Compiler Collection 13 release implemented a number of interesting features in its C front-end. This article summarizes the most interesting ones.
Learn how to use GDB to debug C++ lambda expressions and explore some of the challenges associated with debugging function objects.
A summary of the updates to C++23 from the November 2022 and February 2023
Ranges and localization together can cause issues with regular expressions that are difficult to fully appreciate. Explore current and upcoming solutions.
Learn about an upcoming change in GCC 13's libstdc++ that reduces executable size and improves startup times for C++ programs that use the <iostream> header.
Learn about OS command injection attacks and 4 essential best practices to prevent them.
A trip report from the ISO C++ Standards Committee (WG21) Fall 2022 meeting
Discover how to improve application and library security at the source with _FORTIFY_SOURCE macro defined to 3 and how it impacts performance.
The GCC compiler is expanding range tracking in optimizations.
Learn how internal architectural changes in the new libabigail 2.2 release allow the framework to support multiple debugging formats in addition to DWARF.
It's very common on Linux for a binary application to be invoked by a shell script. This article explains how you can debug such binaries using GDB.
The C++ standard library gained some new concurrency features with C++20 . This article will cover the implementation approach for atomic wait/notify, as these are basis operations required to implement the remaining coordination primitives introduced with C++20.
As we head into Thanksgiving, we want to share some of the top tutorials, announcements, and guides that our developer community has engaged with the most.
Learn about the new features from OpenMP 5.1 and OpenMP 5.2 which are implemented in GCC 12.
Could your perfectly running program blow up someday? Learn different types of behavior in the standard and what helps make a correct C or C++ program.
Breakpoints are the most commonly used (and underused) debugging event in a debugger. This article discusses the breakpoint features that GDB offers developers, and shows how to use breakpoints effectively.
Discover how flexible array members offer convenience and improve performance, and how compiler complexities are mitigated.
Learn techniques to create a binding to make a library written in Rust accessible to Python programs. (Part 3 of 4)
Learn how to implement 3 practices for writing Linux system libraries: backward compatibility, event-driven asynchronous programming, and logging. (Part 1 of 4)
Use a Python API for GDB Text User Interface (TUI) to retrieve content from GDB and display the content in a scrolling window.