linux-zen-desktop/Documentation/translations/zh_CN/arch/parisc/debugging.rst

46 lines
1.7 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

.. include:: ../../disclaimer-zh_CN.rst
:Original: Documentation/arch/parisc/debugging.rst
:翻译:
司延腾 Yanteng Si <siyanteng@loongson.cn>
.. _cn_parisc_debugging:
=================
调试PA-RISC
=================
好吧这里有一些关于调试linux/parisc的较底层部分的信息。
1. 绝对地址
=====================
很多汇编代码目前运行在实模式下,这意味着会使用绝对地址,而不是像内核其他
部分那样使用虚拟地址。要将绝对地址转换为虚拟地址你可以在System.map中查
添加__PAGE_OFFSET目前是0x10000000
2. HPMCs
========
当实模式的代码试图访问不存在的内存时会出现HPMChigh priority machine
check而不是内核oops。若要调试HPMC请尝试找到系统响应程序/请求程序地址。
系统请求程序地址应该与处理器的HPAI/O范围内的高地址相匹配系统响应程
序地址是实模式代码试图访问的地址。
系统响应程序地址的典型值是大于__PAGE_OFFSET 0x10000000的地址这意味着
在实模式试图访问它之前,虚拟地址没有被翻译成物理地址。
3. 有趣的Q位
============
某些非常关键的代码必须清除PSW中的Q位。当Q位被清除时CPU不会更新中断处理
程序所读取的寄存器以找出机器被中断的位置——所以如果你在清除Q位的指令和再
次设置Q位的RFI之间遇到中断你不知道它到底发生在哪里。如果你幸运的话IAOQ
会指向清除Q位的指令如果你不幸运的话它会指向任何地方。通常Q位的问题会
表现为无法解释的系统挂起或物理内存越界。