Tag: tooling

Linux Debuginfo Formats – DWARF, ELF, dwo, dwp – What are They All? – Greg Law – CppCon 2022

  • Lobby
  • Tag Archives: tooling

https://cppcon.org/
---

Linux Debuginfo Formats - DWARF, ELF, dwo, dwp - What are They All? - Greg Law - CppCon 2022
https://github.com/CppCon/CppCon2022

Many different Linux debugging tools are available - as well as the traditional debuggers (GDB, LLDB) we have checkers (Valgrind, the sanitizers), tracing tools (strace, ltrace), time-travel debuggers (rr, UDB). They all rely on debug info to map from the executable back to the source-code. Most of us know to pass the -g option to gcc to generate debuggable binaries, but there is much more to it than that.

This talk covers what exactly is in debug info, the different compiler options to control its generation, and the different kind of object files and why you might want them (e.g. split dwarf files for quicker loading). We also introduce ways to manage this information, including the new debuginfod service.

As is usual for Greg's talks: few slides, many demos.

This talk will give the information you need in order to use the available tooling more effectively, and to troubleshoot when the debug experience doesn't quite "just work".
---

Greg Law

Greg is the founder of Undo. He is a coder at heart, but likes to bridge the gap between the business and software worlds. (Sadly, these days most of Greg's coding is done on airplanes).

Greg has 25 years’ experience in the software industry and has held development and management roles at companies including the pioneering British computer firm Acorn, as well as fast-growing start ups, NexWave and Solarflare. It was at Acorn that Greg met Julian and on evenings and weekends, they invented the core technology that would eventually become UDB and LiveRecorder. Greg has overseen the company as it transitioned from his garden shed to a scaling, award-winning business.

Greg holds a PhD from City University, London and was nominated for the 2001 British Computer Society Distinguished Dissertation Award. He lives in Cambridge, UK with his wife, two children, two dogs and a cat. In his spare time, Greg catches up on email.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #linux

Filed under: UncategorizedTagged with: , , , , , , ,

Cross-Building Strategies in the Age of C++ Package Managers – Luis Caro Campos – CppCon 2022

  • Lobby
  • Tag Archives: tooling

ttps://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Cross-Building Strategies in the Age of Cpp Package Managers - Luis Caro Campos - CppCon 2022
https://github.com/CppCon/CppCon2022

Embedded devices like the Raspberry Pi and NVIDIA Jetson are becoming increasingly popular for both enthusiasts and enterprise-grade applications, in particular for Machine Learning workloads that require a low-power profile. On devices that provide a native build toolchain, developers will typically face two choices: build their applications and their dependencies on the target device, which can take considerably longer than the equivalent workload on a typical PC, or carefully set-up a cross-compilation environment on a more powerful PC where using the correct dependencies (and their versions!) can become more of a challenge.

On the other hand, with macOS and Windows now officially supported on ARM processors, end users will typically expect applications to run natively for the best performance possible, rather than rely on emulation where the performance hit may negatively impact the user experience. The first step before shipping an application is building it, and cross-building existing applications can help vendors get over that first hurdle without having to wait for native hardware, especially given the current supply chain constraints.

But setting up a cross-compilation environment can be challenging and often confusing, and the build scripts for some libraries may not have considered supporting cross-building workflows. C++ package managers have gained a lot of traction in recent years. If we are already using them for our local build workflows, why not leverage their power to support cross-compiling?

This talk focuses on exploring how we leverage the concepts introduced by modern C++ package managers like Conan and vcpkg and apply them to the cross-building workflow, and the technical challenges faced by these tools to enable this. A practical example will be demonstrated where we can cross-build an existing application using familiar tooling, simplifying the workflow and saving considerable time.
---

Luis Caro Campos

Luis is a Electronics and Computer Engineer based in the UK, with previous experience as a C++ engineer in the field of Computer Vision and Robotics. Currently, he is concerned with the problem of enabling Software Development at scale: focused on the tooling and processes to support large teams of engineers in writing code. He is currently part of the Conan team at JFrog, focused on the problems of the C++ community at large.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

Overcoming C++ Embedded Development Tooling Challenges – Marc Goodner – CppCon 2022

  • Lobby
  • Tag Archives: tooling

https://cppcon.org/
---

Overcoming C++ Embedded Development Tooling Challenges - Marc Goodner - CppCon 2022
https://github.com/CppCon/CppCon2022

There are more challenges in embedded than convincing your boss to let you use C++ on your next project. To start with, every silicon vendor seems to have their own IDE. They often have desirable diagnostic capabilities but are lacking in terms of a modern editing experience and are tightly coupled with specialized compilers.

How can you use these compilers with your IDE of choice? If you can already, are you able to also get the diagnostic capabilities you need? How do you manage versions of the compilers you are using for your project generally, even if you can acquire them independently of a vendor IDE? This is a difficult challenge for teams that set versions of compilers and tools at the beginning of a project, but work on multiple projects requiring different tools at the right time. Now, if you can navigate these challenges for your team's local development how do you extend this to your CI system? Is it even possible to connect the outputs of CI to CD?

There is currently a lot of energy within the embedded tools ecosystem to solve these problems. This session will explore these problem areas and how participants in the ecosystem are addressing them. You will leave this session with a better understanding of this landscape and ideas you can bring back to address challenges you are having with managing your embedded tooling.
---

Marc Goodner

Marc Goodner is a product manager on the C++ team focused on improving the experience for embedded developers using Visual Studio, Visual Studio Code, and GitHub.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #embedded

Filed under: UncategorizedTagged with: , , , , ,

Observability Tools C++: Beyond GDB and printf – Tools to Understand the Behavior of Your Program – Ivica Bogosavljevic

  • Lobby
  • Tag Archives: tooling

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Observability Tools C++: Beyond GDB and printf - Quickly Gather Insight into the Behaviour of Your Program Using Observability Tools - Ivica Bogosavljevic - CppCon 2022
https://github.com/CppCon/CppCon2022

Going beyond GDB and printf! We present a few observability tools to help you understand what your program is doing and where it is spending time.

A must hear for all developers working with Linux and Open Source!
---

Ivica Bogosavljevic

Senior Software Engineer with 10 years of experience active in the domain of Linux and bare-metal embedded systems. His professional focus is application performance improvement - techniques used to make your C/C++ program run faster by using better algorithms, better exploiting the underlying hardware, and better usage of the standard library, cppcon.digital-medium.co.uk/tag/programming/">programming language, and the operating system. Writer for a performance-related tech blog: https://johnysswlab.com]
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , , ,

Case For a Standardized Package Description Format for External C++ Libraries – Luis Caro Campos

  • Lobby
  • Tag Archives: tooling

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

The Case For a Standardized Package Description Format for External C++ Libraries - Luis Caro Campos - CppCon 2022
https://github.com/CppCon/CppCon2022

According to the most recent ISO C++ Developer Survey, the most common mechanism for consuming third-party libraries is by making the external source code part of the build, despite the recent advancements provided by package managers like Conan and vcpkg.

On the other hand, the same survey reflects that build times are still one of the major pain points reported by most C++ developers. So what is hindering the adoption of package managers to handle third-party dependencies to help avoid time spent compiling external code that we are less likely to be working on?

In the almost 40 years of history of C++, the proliferation of build system solutions, and the evolving conventions, have made consuming external C++ libraries incredibly challenging: there is no interoperability in the way usage requirements are propagated between libraries and build systems. Earlier attempts at providing an abstraction layer include tools such as Pkg-Config and Libtool, however they have their limitations. More recently, CMake-generated configuration files that correctly express usage requirements have become more predominant, however, they are very much tied to CMake and are difficult to consume from other build systems.

To mitigate this, package maintainers for public binary repositories have had to turn to an intricate set of patches on top of third party source build scripts in order to achieve interoperability. Is there a world where we can further isolate the implementation details of build systems and the way to consume libraries? What role do new language features such as C++ modules play in this landscape? Some of these conventions even affect package managers for other languages that provide bindings to C/C++ libraries, such as Python.

This talk provides an overview of how the evolving conventions of the past 40 years are still having an impact on our ability to consume externally-provided C++ libraries, and opens a discussion on what properties a package definition format would have to satisfy in order to achieve isolation between build systems and package managers.
---

Luis Caro Campos

Luis is a Electronics and Computer Engineer based in the UK, with previous experience as a C++ engineer in the field of Computer Vision and Robotics. Currently, he is concerned with the problem of enabling Software Development at scale: focused on the tooling and processes to support large teams of engineers in writing code. He is currently part of the Conan team at JFrog, focused on the problems of the C++ community at large.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , ,