# Debugging Tools

Published articles for Debugging Tools.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Logpoints Walkthrough

DevFeed: [Logpoints Walkthrough](<https://devfeed.tech/articles/logpoints-walkthrough-31526.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/idea/2026/09/logpoints-walkthrough/>)

Author: Igor Kulakov

Published: 2026-09-16T14:14:04Z

Content type: tutorial

Language: en

Sources: [The JetBrains Blog](<https://devfeed.tech/sources/the-jetbrains-blog.md>)

Topics: [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [debug](<https://devfeed.tech/topics/debug.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [Java](<https://devfeed.tech/topics/java.md>), [2026.2](<https://devfeed.tech/topics/2026-2.md>)

Tags: [2026-2](<https://devfeed.tech/tags/2026-2.md>), [bug](<https://devfeed.tech/tags/bug.md>), [client](<https://devfeed.tech/tags/client.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [debug](<https://devfeed.tech/tags/debug.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [idea](<https://devfeed.tech/tags/idea.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [logpoints](<https://devfeed.tech/tags/logpoints.md>)

### AI overview

This walkthrough explains how to use logpoints in IntelliJ IDEA to investigate a bug in a gRPC client-server example that returns incorrect discount values. It covers reproducing the issue, attaching the debugger to the server, and observing program behavior without suspending execution, including improvements in IntelliJ IDEA 2026.2.

### Source excerpt

Modern development tools, especially IntelliJ IDEA, have such comprehensive debugging support that for virtually any niche use case, there is a specialized tool for the job. This can make it hard to know where to begin. If you are new to debugging tools and want the biggest return on your learning investment, the best feature [...]

## OutOfMemoryError on Android: heap dump recording

DevFeed: [OutOfMemoryError on Android: heap dump recording](<https://devfeed.tech/articles/outofmemoryerror-on-android-heap-dump-recording-26142.md>)

Original publisher: [Read original article](<https://vadzimv.dev/2024/01/07/oom-android-heap-dump-recording.html>)

Author: Vadzimv Dev Blog

Published: 2024-01-07T11:00:00Z

Content type: tutorial

Language: en

Sources: [vadzimv Dev Blog](<https://devfeed.tech/sources/vadzimv-dev-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Java](<https://devfeed.tech/topics/java.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Crashlytics](<https://devfeed.tech/topics/crashlytics.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>)

### AI overview

This tutorial explains how to automatically record a Java heap dump when an OutOfMemoryError occurs in an Android application. It covers heap-dump collection, uncaught-exception handling, Android storage, and subsequent analysis.

### Source excerpt

Learn how to record a Java heap dump at the moment of OutOfMemoryError.

## Core Dump: A Powerful Tool for Debugging Programs in Zephyr with ESP32 Boards

DevFeed: [Core Dump: A Powerful Tool for Debugging Programs in Zephyr with ESP32 Boards](<https://devfeed.tech/articles/core-dump-a-powerful-tool-for-debugging-programs-in-zephyr-with-esp32-boards-13661.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2023/07/core-dump-a-powerful-tool-for-debugging-programs-in-zephyr-with-esp32-boards/>)

Author: John Lee

Published: 2023-07-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Zephyr OS](<https://devfeed.tech/topics/zephyr-os.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Parser](<https://devfeed.tech/topics/parser.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [core-dump](<https://devfeed.tech/tags/core-dump.md>), [crash](<https://devfeed.tech/tags/crash.md>), [debug](<https://devfeed.tech/tags/debug.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [errors](<https://devfeed.tech/tags/errors.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32c3](<https://devfeed.tech/tags/esp32c3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>)

### AI overview

This tutorial explains how to use Zephyr OS core dumps with Espressif ESP32 boards to investigate unrecoverable software crashes. It covers enabling the logging backend, converting UART output into a binary core dump, connecting a custom GDB server, and examining program state in GDB.

### Source excerpt

How to use Zephyr Core Dump feature with Espressif Devices.

## Android Developer Options for Debugging and Development

DevFeed: [Android Developer Options for Debugging and Development](<https://devfeed.tech/articles/android-developer-options-that-you-probably-forgot-26009.md>)

Original publisher: [Read original article](<https://medium.com/@DoesitPew/android-developer-options-that-you-probably-forgot-431e31d4c5fc?source=rss-2ffcf6104135------2>)

Author: Stacy Devino

Published: 2022-04-06T17:23:40Z

Content type: tutorial

Language: en

Sources: [Stories by Stacy Devino on Medium](<https://devfeed.tech/sources/stories-by-stacy-devino-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [feature flags](<https://devfeed.tech/topics/feature-flags.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [OpenGL](<https://devfeed.tech/topics/opengl.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [developer](<https://devfeed.tech/tags/developer.md>), [feature-flags](<https://devfeed.tech/tags/feature-flags.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [logging](<https://devfeed.tech/tags/logging.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [opengl](<https://devfeed.tech/tags/opengl.md>)

### AI overview

This practical article reviews Android Developer Options useful to developers, including debugging apps, inspecting view attributes in Android Studio, verifying apps over USB, adjusting logger buffer sizes, enabling feature flags, and using GPU debug layers. It also covers tools for displaying touch input and gesture traces.

### Source excerpt

Sometimes, I think that we "Old Android Folk" forget to share and re-share the old magic with newer developers or just forget the old ways ourselves. Now we are all well past the ANT and Eclipse days, but there are tools that have remained highly functional or grown to be more useful over time. Or, in the light of new tech like ComposeUI, have gained new functionality not easily achievable any way else. 🤫 Let's talk about... Developer Options Beware, this article is a re-hash of existing content (see above) in a practical sense for practical devs that actually shows & explains. Not all options will show on all devices. You are now a Developer... But did you ever take a look at all the tools in there? 👀 Standard Debugging Tools Standard things everyone uses almost every day or should know Bug report shortcut -- For Bug reports ...a shortcut Verbose vendor logging -- (Vendor devices only) More complete logging in Logcat than would happen normally and can be useful for vendor interactions, fixing a vendor bug, or debugging an integration (*coughs in Samsung*) Enable view attribute inspection -- See View Attributes in the Layout Inspector in Android Studio Select debug app + Wait for debugger -- App won't start unless the debugger is attached in Android Studio, so you can debug things at startup without a crazy logcat to parse and false warnings. Verify apps over USB + Verify bytecode of debuggable apps -- Generally smart to make sure you don't load a dodgy app or general malware by accident (usually online) Logger buffer sizes -- Enable longer or shorter logcats (easier to parse longer ones and capture more events) Feature Flags -- Enable features normally hidden for most users, usually more useful on pre-release or experimental release builds with features to be enabled (features like PiP and onscreen notifications were originally tested this way) Enable GPU debug layers -- Enables Vulkcan validation layers for error checking (Mostly for mobile game developers not using OpenGL, tho

## Debug Kotlin with Xcode References - Ben Whitley

DevFeed: [Debug Kotlin with Xcode References - Ben Whitley](<https://devfeed.tech/articles/debug-kotlin-with-xcode-references-ben-whitley-38188.md>)

Original publisher: [Read original article](<https://touchlab.co/debug-kotlin-with-xcode-references>)

Published: 2020-05-13T16:32:10Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>)

Tags: [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to debug a Kotlin shared framework inside an iOS application by adding Xcode file references to the shared library. The framework must be dynamic for breakpoints, function names, and line numbers to work reliably. It also gives steps for adding the commonMain and iosMain directories and notes that Xcode may need to be reopened before Instruments can access the files.

### Source excerpt

I'm going to share a very (very) simple, helpful, little trick if you want to debug a Kotlin shared framework within an iOS application. Adding Xcode references to the Kotlin files in your shared library will enable you to do frequently used development practices, such as setting breakpoints or opening files from a memory debugger. Before getting started though, it's important to note that your shared Kotlin framework needs to be dynamic for these file references to be useful.

## Helpful: One Year On

DevFeed: [Helpful: One Year On](<https://devfeed.tech/articles/helpful-one-year-on-22021.md>)

Original publisher: [Read original article](<http://www.wilfred.me.uk/blog/2018/06/22/helpful-one-year-on/>)

Author: Wilfred Hughes

Published: 2018-06-22T00:00:00Z

Content type: release

Language: en

Sources: [Wilfred Hughes](<https://devfeed.tech/sources/wilfred-hughes.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [features](<https://devfeed.tech/tags/features.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [tracing](<https://devfeed.tech/tags/tracing.md>)

### AI overview

The article reviews Helpful one year after its first release, highlighting new Emacs debugging and tracing integration, buffer summaries, alias information, variable modification, expanded docstring handling, automatic links, and Info manual links. It also notes availability on MELPA and MELPA stable.

### Source excerpt

It's been a year since the first release of Helpful! It's gained a ton of new features, and I'd love to share the highlights with you. Tool Integration Emacs has some excellent built-in debugging tools that I wanted to expose within Helpful. These tools missed the first release, but I've now had the chance to build them. From a Helpful buffer, you can now toggle edebug on a function. This allows you to easily step through code. You can also toggle tracing. Tracing is an underrated built-in feature of Emacs. You can use it to confirm functions have the inputs and outputs you're expecting. It's really useful when exploring unfamiliar code. In this example, I've enabled tracing on projectile-project-root to see when it's called, and what values it's returning. Summaries After some great user feedback, Helpful buffers now start with a summary of what you're looking at. Users often want a direct link to the source code, so this is included in the summary. Helpful also mentions if a function is interactive or autoloaded, just like describe-function. If a user doesn't know what that means, those words now link to the relevant part of the Emacs manual! Aliases Helpful tries to show all relevant information for the current thing. I've overhauled aliases with this in mind. For example, if you view make-hash-table, you can now see that there is another alias of this function, but it's now deprecated. Modifying Variables It's now possible to set variables directly from Helpful buffers. This was inspired by counsel-set-variable, which has an excellent similar feature. If a variable is a defcustom, then Helpful also includes a link to the relevant part of Customize. Even Better Docstrings Helpful now handles all Emacs docstring syntax. It handles references to keybindings, keymaps, and even supports the obscure features like \<foo-map> and \='. fortran-mode is a great example of a docstring that uses a lot of Emacs docstring features. Recent versions of Helpful try even harder to

## Debugger data model, Javascript & x64 exception handling

DevFeed: [Debugger data model, Javascript & x64 exception handling](<https://devfeed.tech/articles/debugger-data-model-javascript-x64-exception-handling-39703.md>)

Original publisher: [Read original article](<https://doar-e.github.io/blog/2017/12/01/debugger-data-model/>)

Author: Axel "0vercl0k" Souchet

Published: 2017-12-01T14:59:00Z

Content type: tutorial

Language: en

Sources: [Diary of a reverse-engineer](<https://devfeed.tech/sources/diary-of-a-reverse-engineer.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Exception handling](<https://devfeed.tech/topics/exception-handling.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Reverse Engineering](<https://devfeed.tech/topics/reverse-engineering.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [exception](<https://devfeed.tech/tags/exception.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [reverse-engineering](<https://devfeed.tech/tags/reverse-engineering.md>), [seh](<https://devfeed.tech/tags/seh.md>), [time-travel-debugging](<https://devfeed.tech/tags/time-travel-debugging.md>), [ttd](<https://devfeed.tech/tags/ttd.md>), [windbg](<https://devfeed.tech/tags/windbg.md>)

### AI overview

This tutorial explores the WinDbg Preview debugger data model, JavaScript extensions, and Microsoft's time travel debugging tools. It explains how these features can be used to enumerate x64 try/except handlers in JavaScript.

### Source excerpt

Introduction The main goal of today's post is to show a bit more of what is now possible with the latest Windbg (currently branded "WinDbg Preview" in the Microsoft store) and the time travel debugging tools that Microsoft released a few months ago. When these finally got released, a bit ...

## Local Development with Vagrant / Homestead

DevFeed: [Local Development with Vagrant / Homestead](<https://devfeed.tech/articles/local-development-with-vagrant-homestead-31278.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/local-development-with-vagrant-homestead>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-03-31T07:59:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [effectively](<https://devfeed.tech/tags/effectively.md>), [environment](<https://devfeed.tech/tags/environment.md>), [homestead](<https://devfeed.tech/tags/homestead.md>), [insights](<https://devfeed.tech/tags/insights.md>), [linux](<https://devfeed.tech/tags/linux.md>), [local](<https://devfeed.tech/tags/local.md>), [modern-web-development](<https://devfeed.tech/tags/modern-web-development.md>), [projects](<https://devfeed.tech/tags/projects.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [safely](<https://devfeed.tech/tags/safely.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [vagrant-homestead](<https://devfeed.tech/tags/vagrant-homestead.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how Vagrant/Homestead provides a separate virtual machine for local web development. It discusses safer project workflows, isolated environments, production-like Linux systems, and pre-installed development and debugging tools.

### Source excerpt

A local development environment with Vagrant/Homestead allows you to work on projects more safely and effectively

## Academic research on browsers, frontend development, and debugging

DevFeed: [Academic research on browsers, frontend development, and debugging](<https://devfeed.tech/articles/academic-research-on-browsers-frontend-development-and-debugging-21668.md>)

Original publisher: [Read original article](<https://paulirish.com/2012/academic-research-on-browsers-frontend-development-and-debugging/>)

Author: Paul Irish

Published: 2012-09-13T15:45:00Z

Content type: article

Language: en

Sources: [Paul Irish](<https://devfeed.tech/sources/paul-irish.md>)

Topics: [browsers](<https://devfeed.tech/topics/browsers.md>), [frontend development](<https://devfeed.tech/topics/frontend-development.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Development](<https://devfeed.tech/topics/development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [Ajax](<https://devfeed.tech/topics/ajax.md>), [Security](<https://devfeed.tech/topics/security.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [LocalStorage](<https://devfeed.tech/topics/localstorage.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>)

Tags: [academic-research](<https://devfeed.tech/tags/academic-research.md>), [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [frontend-development](<https://devfeed.tech/tags/frontend-development.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [performance](<https://devfeed.tech/tags/performance.md>), [realtime](<https://devfeed.tech/tags/realtime.md>), [research](<https://devfeed.tech/tags/research.md>), [security](<https://devfeed.tech/tags/security.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

An English developer article curates academic papers, talks, and researchers focused on browsers and frontend development. It covers browser capabilities, DOM events, client-side validation, mobile performance and energy use, web-application race detection, debugging tools, Node.js performance visualization, and browser security research.

### Source excerpt

University-level education has never really touched too directly on what we do as frontend developers. I know I was self-taught in the ways of the browser, as were all of my friends. Luckily the sort of webapp work we do these days is quite sophisticated so those CS graduates bring much of the great ideas to the JavaScript community. (Alex Sexton has been a personal inspiration here) Early last year, something clicked in my head when I saw this video: Crossing the Chasm: Pitching Security Research to Mainstream Browser Vendors. You mean.. there are academics... who are doing research on browsers.. in universities? My my! You mean bright minds think about the same things as us and don't publish them on Octopress? ;) Turns out it's quite an active area of research. So, I've put together a list of academic papers, talks, and researchers all centered around frontend development and browsers (Please chime in on the comments if you know of more): Webapps Gibraltar: Exposing Hardware Devices to Web Pages Using AJAX UC San Diego, Microsoft Research, Univ. of Singapore, 2012 Modeling and Reasoning about DOM Events Brown University, 2012 Don't Repeat Yourself: Automatically Synthesizing Client-side Validation Code for Web Applications University of Illinois at Chicago, 2012 Performance Who Killed My Battery: Analyzing Mobile Browser Energy Consumption Stanford, 2012 How far can client-only solutions go for mobile browser speed? ACM Digital Library, 2012 Race Detection for Web Applications Sofia University & ETH Zurich & IBM T.J. Watson Research Center, 2012 Leo Meyerovich - Berkeley Rsearch UC Berkeley, 2009 (Parallel Browser Execution, Security) James Mickens - Microsoft Research Microsoft, 2004- (Performance, localStorage, Mashups, Speculative Execution James Mickens, the Galactic Viceroy of Research Magnificence at Microsoft Research, does awesome work. The above shot is from his MIX11 talk Making Better Web Apps For Today's Browsers. Debugging & Tools Timelapse - Interactiv

## PonyDebugger: Remote Debugging Tools for Native iOS Apps

DevFeed: [PonyDebugger: Remote Debugging Tools for Native iOS Apps](<https://devfeed.tech/articles/ponydebugger-remote-debugging-tools-for-native-ios-apps-15805.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/ponydebugger-remote-debugging-tools-for-native-ios-apps>)

Author: Square Engineering

Published: 2012-08-30T16:01:00Z

Content type: release

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [debug](<https://devfeed.tech/topics/debug.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [chrome](<https://devfeed.tech/tags/chrome.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [network](<https://devfeed.tech/tags/network.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [remote](<https://devfeed.tech/tags/remote.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

PonyDebugger is an open-source remote debugging toolset for native iOS applications. It combines an iOS client library with a gateway server and uses Chrome Developer Tools to inspect network traffic and Core Data data stores.

### Source excerpt

Remote network and data debugging with Chrome Developer Tools.

## Breakpoints in gdb using int3

DevFeed: [Breakpoints in gdb using int3](<https://devfeed.tech/articles/breakpoints-in-gdb-using-int3-21551.md>)

Original publisher: [Read original article](<http://lackingrhoticity.blogspot.com/2010/05/breakpoints-in-gdb-using-int3.html>)

Author: Mark Seaborn (noreply@blogger.com)

Published: 2010-05-01T11:59:00Z

Content type: tutorial

Language: en

Sources: [Mark Seaborn](<https://devfeed.tech/sources/mark-seaborn.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [signal](<https://devfeed.tech/tags/signal.md>), [x86](<https://devfeed.tech/tags/x86.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

This article explains how inserting the x86 int3 instruction, for example through __asm__("int3"), can trigger a breakpoint while debugging with gdb. It notes that int3 raises SIGTRAP, allowing inspection of registers, memory, and the call stack under gdb, and can be useful when setting a source-line breakpoint is impractical, such as within inline assembly.

### Source excerpt

Here is a useful trick I discovered recently while debugging some changes to the seccomp sandbox. To trigger a breakpoint on x86, just do: __asm__("int3"); Then it is possible to inspect registers, memory, the call stack, etc. in gdb, without having to get gdb to set a breakpoint. The instruction triggers a SIGTRAP, so if the process is not running under gdb and has no signal handler for SIGTRAP, the process will die. This technique seems to be fairly well known, although it's not mentioned in the gdb documentation. int3 is the instruction that gdb uses internally for setting breakpoints. Sometimes it's easier to insert an int3 and rebuild than get gdb to set a breakpoint. For example, setting a gdb breakpoint on a line won't work in the middle of a chunk of inline assembly. My expectations of gdb are pretty low these days. When I try to use it to debug something low level, it often doesn't work, which is why I have been motivated to hack together my own debugging tools in the past. For example, if I run gdb on the glibc dynamic linker (ld.so) on Ubuntu Hardy or Karmic, it gives: $ gdb /lib/ld-linux-x86-64.so.2 ... (gdb) run Starting program: /lib/ld-linux-x86-64.so.2 Cannot access memory at address 0x21ec88 (gdb) So it's nice to find a case where I can get some useful information out of gdb.