<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>调试 - 标签 - 研发日志 · R&amp;D Log</title><link>https://rd163.visword.com/tags/%E8%B0%83%E8%AF%95/</link><description>调试 - 标签 - 研发日志 · R&amp;D Log</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>whutluohui@gmail.com (小智晖)</managingEditor><webMaster>whutluohui@gmail.com (小智晖)</webMaster><copyright>本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。</copyright><lastBuildDate>Sun, 12 Jan 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://rd163.visword.com/tags/%E8%B0%83%E8%AF%95/" rel="self" type="application/rss+xml"/><item><title>Android 应用程序中的 Coredump 抓取与分析</title><link>https://rd163.visword.com/posts/android-debug-coredump/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/android-debug-coredump/</guid><description><![CDATA[<p>在 Android 平台上，一旦业务进入音视频、图形渲染、JNI 桥接或自研 SDK 等领域，Native 层（C/C++）崩溃就成为无法回避的问题。与 Java 层崩溃不同，Native 崩溃抛出的是 <code>SIGSEGV</code>、<code>SIGABRT</code> 等信号（signals）,栈帧地址是一串十六进制数，直接看日志几乎读不出有用信息。要在这种环境下定位问题，必须先拿到&quot;崩溃现场&quot;——也就是本文要讨论的 <strong>Coredump 与 Tombstone</strong>。</p>]]></description></item><item><title>ptrace 学习笔记</title><link>https://rd163.visword.com/posts/linux-ptrace-intro/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/linux-ptrace-intro/</guid><description><![CDATA[<p><code>ptrace(2)</code> 是 Linux(以及多数现代 Unix)提供的一个系统调用,允许一个进程(<strong>tracer</strong>,跟踪者)观察、控制另一个进程(<strong>tracee</strong>,被跟踪者)的执行,并读写其内存与寄存器。它是 <code>strace</code>、<code>gdb</code> 等工具的底层基石(perf trace 走的是 perf_event_open tracepoint 路径,刻意避开 ptrace 的高开销),也是反调试、沙箱、热补丁等技术的实现入口。本文整理其工作模型、常用 request 与典型示例。</p>]]></description></item><item><title>Python 可视化调试</title><link>https://rd163.visword.com/posts/python-visual-debug/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/python-visual-debug/</guid><description>&lt;p>「可视化调试」在 Python 语境下有两层含义:一是用图形界面(GUI)的调试器,在断点处查看变量、调用栈与求值表达式;二是把程序的执行过程可视化,用时间线、火焰图等呈现函数调用顺序与耗时。前者解决「程序为什么是这个状态」,后者解决「程序究竟是怎么跑的」。本文介绍三种常用方案。&lt;/p></description></item><item><title>可视化</title><link>https://rd163.visword.com/posts/visual/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/visual/</guid><description><![CDATA[<p>软件开发与计算机科学教学中,「可视化」是把抽象逻辑转化为可感知图形的有效手段。按照用途,可视化工具大致可分为三类:<strong>算法可视化</strong>(帮助理解数据结构与算法的执行过程)、<strong>调试可视化</strong>(帮助分析程序运行状态与调用关系)、<strong>数据可视化</strong>(用于绘制业务数据、网络拓扑等)。本文按这三类梳理常用工具。</p>]]></description></item></channel></rss>