€•1/Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ+/translations/zh_CN/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/process/debugging/index”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒE/var/lib/git/docbuild/linux/Documentation/process/debugging/index.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ,Debugging advice for Linux Kernel developers”h]”hŒ,Debugging advice for Linux Kernel developers”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒgeneral guides”h]”hŒgeneral guides”…””}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒcompound”“”)”}”(hhh]”hŒtoctree”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hŒprocess/debugging/index”Œentries”]”(NŒ4process/debugging/driver_development_debugging_guide”†”NŒ&process/debugging/gdb-kernel-debugging”†”NŒprocess/debugging/kgdb”†”NŒ+process/debugging/userspace_debugging_guide”†”eŒ includefiles”]”(jjjjeŒmaxdepth”KŒcaption”NŒglob”‰Œhidden”‰Œ includehidden”‰Œnumbered”KŒ titlesonly”‰Œ rawentries”]”uh1hóh³hÇh´K hhðubah}”(h]”h ]”Œtoctree-wrapper”ah"]”h$]”h&]”uh1hîhhÝh²hh³hÇh´Nubeh}”(h]”Œgeneral-guides”ah ]”h"]”Œgeneral guides”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒsubsystem specific guides”h]”hŒsubsystem specific guides”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj#h²hh³hÇh´Kubhï)”}”(hhh]”hô)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hhþhÿ]”NŒ0process/debugging/media_specific_debugging_guide”†”aj ]”jAaj Kj Nj ‰j‰j‰jKj‰j]”uh1hóh³hÇh´Khj4ubah}”(h]”h ]”jah"]”h$]”h&]”uh1hîhj#h²hh³hÇh´NubhÉ)”}”(hhh]”(hÎ)”}”(hŒGeneral debugging advice”h]”hŒGeneral debugging advice”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjKh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒ“Depending on the issue, a different set of tools is available to track down the problem or even to realize whether there is one in the first place.”h]”hŒ“Depending on the issue, a different set of tools is available to track down the problem or even to realize whether there is one in the first place.”…””}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´KhjKh²hubj])”}”(hŒ”As a first step you have to figure out what kind of issue you want to debug. Depending on the answer, your methodology and choice of tools may vary.”h]”hŒ”As a first step you have to figure out what kind of issue you want to debug. Depending on the answer, your methodology and choice of tools may vary.”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K hjKh²hubeh}”(h]”Œgeneral-debugging-advice”ah ]”h"]”Œgeneral debugging advice”ah$]”h&]”uh1hÈhj#h²hh³hÇh´Kubeh}”(h]”Œsubsystem-specific-guides”ah ]”h"]”Œsubsystem specific guides”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ'Do I need to debug with limited access?”h]”hŒ'Do I need to debug with limited access?”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŠh²hh³hÇh´K$ubj])”}”(hŒZDo you have limited access to the machine or are you unable to stop the running execution?”h]”hŒZDo you have limited access to the machine or are you unable to stop the running execution?”…””}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K&hjŠh²hubj])”}”(hXoIn this case your debugging capability depends on built-in debugging support of provided distribution kernel. The :doc:`/process/debugging/userspace_debugging_guide` provides a brief overview over a range of possible debugging tools in that situation. You can check the capability of your kernel, in most cases, by looking into config file within the /boot directory.”h]”(hŒrIn this case your debugging capability depends on built-in debugging support of provided distribution kernel. The ”…””}”(hj©h²hh³Nh´Nubh)”}”(hŒ3:doc:`/process/debugging/userspace_debugging_guide`”h]”hŒinline”“”)”}”(hj³h]”hŒ,/process/debugging/userspace_debugging_guide”…””}”(hj·h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-doc”eh"]”h$]”h&]”uh1jµhj±ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hþŒ refdomain”jÂŒreftype”Œdoc”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œ,/process/debugging/userspace_debugging_guide”uh1hh³hÇh´K)hj©ubhŒÊ provides a brief overview over a range of possible debugging tools in that situation. You can check the capability of your kernel, in most cases, by looking into config file within the /boot directory.”…””}”(hj©h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K)hjŠh²hubeh}”(h]”Œ&do-i-need-to-debug-with-limited-access”ah ]”h"]”Œ'do i need to debug with limited access?”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K$ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ$Do I have root access to the system?”h]”hŒ$Do I have root access to the system?”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjçh²hh³hÇh´K1ubj])”}”(hŒQAre you easily able to replace the module in question or to install a new kernel?”h]”hŒQAre you easily able to replace the module in question or to install a new kernel?”…””}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K3hjçh²hubj])”}”(hŒ—In that case your range of available tools is a lot bigger, you can find the tools in the :doc:`/process/debugging/driver_development_debugging_guide`.”h]”(hŒZIn that case your range of available tools is a lot bigger, you can find the tools in the ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ<:doc:`/process/debugging/driver_development_debugging_guide`”h]”j¶)”}”(hjh]”hŒ5/process/debugging/driver_development_debugging_guide”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(jÁŒstd”Œstd-doc”eh"]”h$]”h&]”uh1jµhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”hþŒ refdomain”jŒreftype”Œdoc”Œ refexplicit”‰Œrefwarn”ˆjÓŒ5/process/debugging/driver_development_debugging_guide”uh1hh³hÇh´K6hjubhŒ.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K6hjçh²hubeh}”(h]”Œ#do-i-have-root-access-to-the-system”ah ]”h"]”Œ$do i have root access to the system?”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K1ubhÉ)”}”(hhh]”(hÎ)”}”(hŒIs timing a factor?”h]”hŒIs timing a factor?”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj@h²hh³hÇh´K:ubj])”}”(hXeIt is important to understand if the problem you want to debug manifests itself consistently (i.e. given a set of inputs you always get the same, incorrect output), or inconsistently. If it manifests itself inconsistently, some timing factor might be at play. If inserting delays into the code does change the behavior, then quite likely timing is a factor.”h]”hXeIt is important to understand if the problem you want to debug manifests itself consistently (i.e. given a set of inputs you always get the same, incorrect output), or inconsistently. If it manifests itself inconsistently, some timing factor might be at play. If inserting delays into the code does change the behavior, then quite likely timing is a factor.”…””}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³hÇh´K