aboutsummaryrefslogtreecommitdiff
path: root/zh-cn/devices/tech/debug
diff options
context:
space:
mode:
Diffstat (limited to 'zh-cn/devices/tech/debug')
-rw-r--r--zh-cn/devices/tech/debug/asan.html4
-rw-r--r--zh-cn/devices/tech/debug/libfuzzer.html2
-rw-r--r--zh-cn/devices/tech/debug/sanitizers.html3
3 files changed, 5 insertions, 4 deletions
diff --git a/zh-cn/devices/tech/debug/asan.html b/zh-cn/devices/tech/debug/asan.html
index 7bf9a9ee..519b8b40 100644
--- a/zh-cn/devices/tech/debug/asan.html
+++ b/zh-cn/devices/tech/debug/asan.html
@@ -33,7 +33,7 @@
<p>AddressSanitizer 包括一个编译器 (<code>external/clang</code>) 和一个运行时库 (<code>external/compiler-rt/lib/asan</code>)。</p>
-<p class="note"><strong>注意</strong>:使用最新的 master 分支即可获得 <a href="#sanitize_target">SANITIZE_TARGET</a> 功能,并能够使用 AddressSanitizer 一次性编译整个 Android 平台。否则,您将只能使用 <code>LOCAL_SANITIZE</code>。</p>
+<p class="note"><strong>注意</strong>:使用最新的 master 分支即可使用 <a href="#sanitize_target">SANITIZE_TARGET</a> 功能,并能够使用 AddressSanitizer 一次性编译整个 Android 平台。否则,您将只能使用 <code>LOCAL_SANITIZE</code>。</p>
<h2 id="building_with_clang">使用 Clang 编译</h2>
@@ -105,7 +105,7 @@ LOCAL_ARM_MODE:=arm
<h2 id="addresssanitizer_in_the_apps">在应用中使用 AddressSanitizer</h2>
-<p>AddressSanitizer 无法检查 Java 代码,但可以检测 JNI 库中的错误。为此,您需要使用 ASan 编译可执行文件(在这种情况下是 <code>/system/bin/app_process(<em>32|64</em>)</code>)。这将在设备上的所有应用中同时启用 ASan,因而会给设备带来一些压力,但 2GB 内存的设备可以从容处理这种情况。</p>
+<p>AddressSanitizer 无法检查 Java 代码,但可以检测 JNI 库中的错误。为此,您需要使用 ASan 编译可执行文件(在这种情况下是 <code>/system/bin/app_process(<em>32|64</em>)</code>)。这将在设备上的所有应用中同时启用 ASan,因而会给设备带来一些压力,但 2GB RAM 的设备可以从容处理这种情况。</p>
<p>向 <code>frameworks/base/cmds/app_process</code> 中的 app_process 编译规则添加常规的 <code>LOCAL_SANITIZE:=address</code>。暂时忽略同一个文件中的 <code>app_process__asan</code> 目标(如果在您阅读该文件时这个目标仍存在于其中)。在 <code>system/core/rootdir/init.zygote(<em>32|64</em>).rc</code> 中修改 Zygote 记录,以添加以下行:</p>
diff --git a/zh-cn/devices/tech/debug/libfuzzer.html b/zh-cn/devices/tech/debug/libfuzzer.html
index 870e629e..9cf700c9 100644
--- a/zh-cn/devices/tech/debug/libfuzzer.html
+++ b/zh-cn/devices/tech/debug/libfuzzer.html
@@ -35,7 +35,7 @@ Android 编译系统通过从 LLVM 编译器基础架构项目纳入 <a href="ht
<aside class="note"><strong>提示</strong>:要详细了解设置信息,请参阅<a href="/setup/requirements">下载和编译</a>部分。请按照说明<a href="/setup/initializing">设置</a>您的编译环境,<a href="/setup/downloading">下载</a>源代码,然后编译 Android(借助 <a href="/setup/building.html#build-the-code">make 命令</a>)。</aside>
<p>向您的设备中刷入标准 Android 编译版本后,请按照说明刷入 <a href="/devices/tech/debug/asan.html#sanitize_target">AddressSanitizer 编译版本</a>,然后使用 <code>SANITIZE_TARGET='address
-coverage'</code>(而非 <code>SANITIZE_TARGET='address'</code>)来开启覆盖率指标。
+coverage'</code>(而非 <code>SANITIZE_TARGET='address'</code>)开启覆盖率指标。
</p>
<h4 id="setup-example">设置示例</h4>
<p>
diff --git a/zh-cn/devices/tech/debug/sanitizers.html b/zh-cn/devices/tech/debug/sanitizers.html
index dfd25ddc..3d5b7891 100644
--- a/zh-cn/devices/tech/debug/sanitizers.html
+++ b/zh-cn/devices/tech/debug/sanitizers.html
@@ -37,7 +37,8 @@ Android 编译版本最好在启用排错程序(如 AddressSanitizer 和 Undef
<li>释放后再使用</li>
</ul>
<p>
-Android 允许在完整编译级别和在<a href="/devices/tech/debug/asan#addresssanitizer_in_the_apps">应用级别</a>通过 asanwrapper 进行 <a href="/devices/tech/debug/asan">ASan instrumentation</a>。
+Android 允许在完整编译级别和在<a href="/devices/tech/debug/asan#addresssanitizer_in_the_apps">应用级别</a>通过 asanwrapper 进行 <a href="/devices/tech/debug/asan">ASan
+instrumentation</a>。
</p>
<p>
AddressSanitizer 对所有与内存相关的函数调用(包括 alloca、malloc 和 free)进行插桩,并使用被读取或写入时会触发 ASan 回调的内存填充所有变量和已分配的内存区域。