itCppCon21 - The Quest For A Better Crash (Victor Ciura)
Event page: https://italiancpp.org/itcppcon21
Slides: https://github.com/italiancpp/itcppcon21
---
Crashed! Now What? Sometimes reproducing a crash on a developer's machine is next to impossible. Most of the time remote debugging is out of the question and all you’re left with are some scant log files and maybe a memory dump file, if you’re lucky. Wouldn’t you like to know the exact point of failure in the program and how it got there, on the client’s PC? How can you get your hands on a StackTrace of that crash on the client’s machine? And how can you make any sense of it without symbols? In this session, I’ll present a Windows specific technique we developed, that my team uses regularly to debug such scenarios in production. We leverage OS APIs like the Image Help Library (ImageHlp.dll), the Debug Help Library (DbgHelp.dll) to work with PE/COFF images and PDBs and reconstruct symbolicated StackTraces for Release crashes in production. The technique and APIs work all the way from Windows XP up to Windows 10, both for x86 and x64 executables. We’ll see how symbols are loaded and how PDBs work; we’ll discuss partial/incremental PDBs and we’ll have to get comfortable with Structured Exception Handling and Address Space Layout Randomization.
Видео itCppCon21 - The Quest For A Better Crash (Victor Ciura) канала Italian Cpp Community
Slides: https://github.com/italiancpp/itcppcon21
---
Crashed! Now What? Sometimes reproducing a crash on a developer's machine is next to impossible. Most of the time remote debugging is out of the question and all you’re left with are some scant log files and maybe a memory dump file, if you’re lucky. Wouldn’t you like to know the exact point of failure in the program and how it got there, on the client’s PC? How can you get your hands on a StackTrace of that crash on the client’s machine? And how can you make any sense of it without symbols? In this session, I’ll present a Windows specific technique we developed, that my team uses regularly to debug such scenarios in production. We leverage OS APIs like the Image Help Library (ImageHlp.dll), the Debug Help Library (DbgHelp.dll) to work with PE/COFF images and PDBs and reconstruct symbolicated StackTraces for Release crashes in production. The technique and APIs work all the way from Windows XP up to Windows 10, both for x86 and x64 executables. We’ll see how symbols are loaded and how PDBs work; we’ll discuss partial/incremental PDBs and we’ll have to get comfortable with Structured Exception Handling and Address Space Layout Randomization.
Видео itCppCon21 - The Quest For A Better Crash (Victor Ciura) канала Italian Cpp Community
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![itCppCon18 - WebAssembly: Native code for the web (Paolo Severini)](https://i.ytimg.com/vi/s5S3Mkocwyc/default.jpg)
![itCppCon18 - Writing and using compile-time heterogeneous hash table in C++17 (Denis Panin)](https://i.ytimg.com/vi/NQ3o2YiuPVs/default.jpg)
![Italian C++ Conference 2016 - Introduzione](https://i.ytimg.com/vi/sKHBYZevcv8/default.jpg)
![itCppCon21 - Closing Message (Marco Arena)](https://i.ytimg.com/vi/aWGrp992Iy4/default.jpg)
![C++Day 2018: [ITA] Michele Caini "Unevaluated operands: the SFINAE you don't expect"](https://i.ytimg.com/vi/BjVvCZgOE8E/default.jpg)
![itCppCon20 Welcome + KEYNOTE Let's Move-The Hidden Features and Traps of C++ Move Semantics Josuttis](https://i.ytimg.com/vi/OOLR96-GjsI/default.jpg)
![itCppCon20 - The C++20 firehose talk (Fabio Fracassi)](https://i.ytimg.com/vi/Be47dtmj8EE/default.jpg)
![[Virtual Meetup] To Poly or Not To Poly (Michele Caini)](https://i.ytimg.com/vi/DjCsGPESGEc/default.jpg)
![++it Meetup Firenze - Solving Constraint Satisfaction Problem using Monads (Bartosz Milewski)](https://i.ytimg.com/vi/2G5MprrtgMs/default.jpg)
![itCppCon18 - Channels are useful – not just for water (Felix Petriconi)](https://i.ytimg.com/vi/-0t2cg3hkOg/default.jpg)
![itCppCon18 - Time Travel Debugging in Windows (Paolo Severini)](https://i.ytimg.com/vi/NF8IPyBC91U/default.jpg)
![C++ Day 2016 - Le API e il Miele (Marco Foco)](https://i.ytimg.com/vi/Gne_cQf4TBU/default.jpg)
![itCppCon17 - Costruire un bridge C++ tra NodeJS e C# (Raffaele Rialdi)](https://i.ytimg.com/vi/Ph_YZEAZrtw/default.jpg)
![[CppDay20] Understanding value categories in C++ (Kris van Rens)](https://i.ytimg.com/vi/km3Urog_wzk/default.jpg)
![C++ Day 2016 - Data Oriented Design (Daniele Maccioni)](https://i.ytimg.com/vi/SwUF1UaWbYs/default.jpg)
![itCppCon21 - A bird's-eye view of template C++ (Kris van Rens)](https://i.ytimg.com/vi/mfHFU9Zq_L4/default.jpg)
![Italian C++ Conference 2016 - REST e Websocket in C++ (Raffaele Rialdi)](https://i.ytimg.com/vi/lCTrHjXQLrE/default.jpg)
![C++Day 2018: [ENG] Giorgio Zoppi "Exploring IoT with RTI DDS Connext"](https://i.ytimg.com/vi/GLaj5Vm6jOE/default.jpg)
![itCppCon23 C++ Features You Might Not Know (Jonathan Müller)](https://i.ytimg.com/vi/BlFCpddXLLY/default.jpg)
![itCppCon19 - Teaching modern C++ to future game developers (Roberto De Ioris)](https://i.ytimg.com/vi/L_xrOVx_pDg/default.jpg)