About:
Juan Cruz Viotti's personal website, which contains articles, research, videos, notes, and more.
Website:
Outgoing Links:
Subscribe to RSS:
The article is a guide to studying the assembly code generated by AppleClang for C++ projects using Xcode Instruments. It includes information on release builds and debug symbols, CMake and single-configuration generators, CMake a...
The article explains how to install and configure the Intel VTune Profiler on Fedora to use advanced analysis such as the Memory Access tool. It also covers the process of adding VTune Profiler to the GNOME application menu, givin...
The article provides an introduction to using the CDB command-line debugger in the context of C++ programs. It covers topics such as installing CDB, loading the executable, breaking on uncaught exceptions, printing the stack trace...
This article provides an overview of how to use Xcode Instruments and its xctrace command-line tool to perform CPU profiling of C++ programs. It includes an introduction to Instruments, a simple CPU profile example, profiling from...
The article describes how the Objective-C BOOL type is differently defined on Apple platforms, and how these differences are defined in LLVM. It explores the unexpected behavior of the BOOL type on different platforms and architec...
The article describes how to transpile Objective-C to C++, and use that approach to gain understanding of the Objective-C runtime. It also discusses the limitations of the re-writer and the history of the work on the LLVM project....
The article describes how LLDB can be used to mutate return values of Objective-C methods and functions. It reviews Apple Silicon procedure calls and provides examples of spoofing scalar and object return values in Objective-C pro...
The article explores reverse engineering macOS private frameworks, providing a series of approaches for digging into private frameworks using the Disk Utility built-in application as an example. It discusses tools like otool, Runt...
The article describes how to build iOS applications using Objective-C with CMake instead of plain Xcode. It explores the CMake Xcode generator, setting up CMake, declaring the main target, building the asset catalog, configuring t...
The article explores how to write iOS applications with Objective-C without using traditional Storyboards. It covers topics such as the entry point and application delegate, adding a navigation controller, creating a color set, cr...
The article explains how to launch macOS application bundles from the command line, providing an overview of application bundles, Cocoa and the open command. It also discusses improving on the defaults, process hierarchy, TTYs and...
The article discusses a novel system-independent approach to performance testing using tracing. It covers various methodologies for performance testing, drawbacks of each approach, and the requirements for an ideal automated softw...
This article explains how to debug a GNU/Linux native crash on a release build of Electron.js. It describes the use of Chromium's Breakpad and Crashpad, the crashReporter Electron.js module, fetching Breakpad symbols, extracting s...
The article describes how to use LLDB on C++ standard library code on macOS. It explains how to build libc++ from source, build C++ programs against it, and explore libc++ through LLDB. It focuses on macOS, but the concepts should...
The article describes how to use LLDB to debug production builds of Electron.js on macOS. It explains how to use LLDB without debugging symbols, how to load DWARF debugging symbols, and how to configure source maps. It also discus...
The article describes how to use the macOS Signposts API from C++ applications, the OS Logging API, and the macOS SDK. It explains the types of signposts, log handles, signpost identifiers, and emitting signposts. It also provides...
0Debugging Electron.js native crashes on macOS
2021-12-08 •
...
The article argues that employers should not own the IP of the contributions of their employees, especially in the context of open-source software. It highlights the problems that arise from such ownership and suggests modifying c...
The article describes how Mach-O universal binaries work, and how they played a key role in enabling a smooth CPU architecture transition for both developers and end-users when Apple transitioned macOS from PowerPC to Intel proces...
The article describes the back story behind a Chromium CL to restore SCCACHE support on Windows. It explains the issues with SCCACHE not working when performing Chromium or Electron.js builds on Windows and the adventure of making...
This article provides a detailed guide on how to build Electron.js on Windows using the Visual Studio Build Tools. It includes information on downloading the installer, creating an installation layout, preparing the Windows 10 SDK...