C
Memory error checking in C and C++: Comparing Sanitizers and Valgrind
Debugging memory errors can be challenging, and having the right tool helps. See how Valgrind and Sanitizers compare for common C and C++ memory errors.
Detecting memory management bugs with GCC 11, Part 2: Deallocation functions
Explore more features in GCC 11 that can help detect dynamic memory bugs in C and C++, and learn about the compiler's limitations.
Optimizing the Clang compiler’s line-to-offset mapping
Want Clang to compile faster? Learn why optimizing the LineOffsetMapping function was a good start, and how it was optimized for both SSE and bithacks.
How to debug C and C++ programs with rr
Learn how you can go back in time and replay what went wrong in a C/C++ program with rr (a GNU Debugger Linux enhancement) in this short demo.
New features in OpenMP 5.0 and 5.1
Get an overview of the C/C++ performance and usability enhancements in OpenMP 5.0 and 5.1, including features now integrated in GCC 11.
Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1 beta versions now available
Find out what's new in Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1, including updated PostgreSQL, Ruby, and MariaDB collections.
The GDB developer's GNU Debugger tutorial, Part 1: Getting started with the debugger
Get introduced to the GNU Debugger (GDB) with this new series. Part 1 explores advanced startup options, faster command execution, and more.
Detecting memory management bugs with GCC 11, Part 1: Understanding dynamic allocation
Dynamic memory management bugs are hard to find and frequently targeted in C and C++ programs, but GCC 11's enhanced malloc attribute is here to help.
Value range propagation in GCC with Project Ranger
Find out about the new value range propagation abilities coming to GCC 11, and what else you can expect from Project Ranger in GCC 12.
The MIR C interpreter and Just-in-Time (JIT) compiler
Find out how the MIR project's C JIT compiler and interpreter compares to other C compilers for generated code and compilation speed.
Valgrind Memcheck: Different ways to lose your memory
Find out how Valgrind Memcheck detects memory leaks in your C or C++ programs, and how to integrate Valgrind into your test suites for early detection.
Solving the mystery of hanging character set conversions in glibc's iconv utility
The GNU C Library's iconv utility had a problem with hanging character set conversions. Learn how rewriting iconv's option parsing solved the issue.
Remote LLVM development with Visual Studio Code
Get a guided tour of using Visual Studio Code's remote SSH extension to edit and compile remote LLVM on your Fedora Linux operating system.
Broadening compiler checks for buffer overflows in _FORTIFY_SOURCE
The GNU C Library's 2.33 release adds buffer overflow protection for C/C++ programs. Find out how _FORTIFY_SOURCE=3 improves overflow protection in glibc.
Using the SystemTap Dyninst runtime environment
Use SystemTap (stap), the Dyninst instrumentation framework, and Python to write instrumentation for a live running kernel or a user space application.
Get started with XDP
Learn how to write an XDP program on RHEL 8.3 for counting dropped packets, which involves adding a BPF map, and writing a custom loader.
Static analysis updates in GCC 11
Get an overview of fixes and enhancements to the -fanalyzer static analysis pass, currently being updated for security, state tracking, and more in GCC 11.
Coming in glibc 2.33: Reloadable nsswitch.conf
Learn how glibc version 2.33 will support reloading nsswitch.conf changes without having to stop and start your application.
Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level
Find out why Red Hat recommends building Red Hat Enterprise Linux 9 for x86-64-v2 and what you can expect from this new, optional microarchitecture level.
Migrating C and C++ applications from Red Hat Enterprise Linux version 7 to version 8
Learn how to use Red Hat Enterprise Linux Application Compatibility Guides to migrate your C/C++ applications from RHEL 7 to 8 without unpleasant surprises.
Developing micro-microservices in C on Red Hat OpenShift
Explore the implications of implementing a REST-based web service in C by determining sun/moonrise and set for a specific location and day.
Red Hat Enterprise Linux 8.2 brings faster Python 3.8 run speeds
Improve Python 3.8's run speed by 30% in RHEL 8.2 by compiling with GCC's -fno-semantic-interposition flag.
The joys and perils of aliasing in C and C++, Part 2
In part 2 of this series, avoid aliasing restrictions with programming language exemptions and compiler extensions, and explore possible resulting problems.
The joys and perils of C and C++ aliasing, Part 1
In part 1 of this series, explore C/C++ language restrictions, their challenges and pitfalls, and examples demonstrating their benefits in optimized code.