mirror_ubuntu-kernels/Documentation/translations/zh_TW/arch/parisc/debugging.rst

47 lines
1.7 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. include:: ../../disclaimer-zh_TW.rst
:Original: Documentation/arch/parisc/debugging.rst
:翻譯:
司延騰 Yanteng Si <siyanteng@loongson.cn>
.. _tw_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位的問題會
表現爲無法解釋的系統掛起或物理內存越界。