# Debug

Source: [https://docs.qualcomm.com/doc/80-70014-20/topic/debug.html](https://docs.qualcomm.com/doc/80-70014-20/topic/debug.html)

The debug methods available for the VPU and GStreamer plugins are mentioned here.

## Debug VPU

Figure : Debug VPU workflow
                    
                    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export Debug-vpu-workflow.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="15.875in" height="4.26042in" viewbox="0 0 1143 306.75" xml:space="preserve" color-interpolation-filters="sRGB" class="st10"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #f7f8fa; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #ffffff; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25 }
.svg-1 .st3 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-1 .st4 { font-size: 1em }
.svg-1 .st5 { marker-end: url("#mrkr5-30"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25 }
.svg-1 .st6 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.47169811320755 }
.svg-1 .st7 { marker-end: url("#mrkr5-30"); marker-start: url("#mrkr5-60"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25 }
.svg-1 .st8 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25 }
.svg-1 .st9 { marker-start: url("#mrkr5-60"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25 }
.svg-1 .st10 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend5">		<path d="M 2 1 L 0 0 L 1.98117 -0.993387 C 1.67173 -0.364515 1.67301 0.372641 1.98465 1.00043 " style="stroke:none"></path>	</g>	<marker id="mrkr5-30" class="st6" v:arrowtype="5" v:arrowsize="2" v:setback="3.71" refx="-3.71" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-2.12,-2.12) "></use>	</marker>	<marker id="mrkr5-60" class="st6" v:arrowtype="5" v:arrowsize="2" v:setback="3.55" refx="3.55" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(2.12) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape35-1" v:mid="35" v:groupcontext="shape" transform="translate(18,-18)">		<title></title>		<rect x="0" y="36" width="1107" height="270.75" class="st1"></rect>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape" transform="translate(935.625,-137.664)">		<title></title>		<desc>Stop capturing logs</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.1625):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.1625):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.1625):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.1625):1"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="58.5" cy="281.27" width="117" height="50.9605"></v:textrect>		<path d="M11.7 306.75 L105.3 306.75 A11.6998 11.6998 -180 0 0 117 295.05 L117 267.49 A11.6998 11.6998 -180 0 0 105.3					 255.79 L11.7 255.79 A11.6998 11.6998 -180 0 0 -0 267.49 L0 295.05 A11.6998 11.6998 -180 0 0 11.7 306.75					 Z" class="st2"></path>		<text x="7.13" y="284.87" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Stop capturing logs</text>		</g>	<g id="shape5-6" v:mid="5" v:groupcontext="shape" transform="translate(791.625,-137.664)">		<title></title>		<desc>Run the use case</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="7.3" y="284.87" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Run the use case</text>		</g>	<g id="shape6-9" v:mid="6" v:groupcontext="shape" transform="translate(638.625,-137.664)">		<title></title>		<desc>Start capturing logs</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="14.98" y="277.67" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Start capturing <tspan x="42.99" dy="1.2em" class="st4">logs</tspan></text>		</g>	<g id="shape7-13" v:mid="7" v:groupcontext="shape" transform="translate(495,-137.664)">		<title></title>		<desc>Set the log level using debugfs node</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="11.3" y="270.47" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Set the log level <tspan x="16.64" dy="1.2em" class="st4">using debugfs </tspan><tspan x="40.65" dy="1.2em" class="st4">node</tspan></text>		</g>	<g id="shape8-18" v:mid="8" v:groupcontext="shape" transform="translate(180,-136.52)">		<title></title>		<desc>Choose the log level</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="13.64" y="277.67" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Choose the log <tspan x="41.66" dy="1.2em" class="st4">level</tspan></text>		</g>	<g id="shape9-22" v:mid="9" v:groupcontext="shape" transform="translate(36.375,-136.52)">		<title></title>		<desc>Mount debugfs</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="14.31" y="284.87" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Mount debugfs</text>		</g>	<g id="shape10-25" v:mid="10" v:groupcontext="shape" v:layermember="0" transform="translate(144.375,-153)">		<title></title>		<path d="M0 297.75 L27.28 297.75" class="st5"></path>	</g>	<g id="shape12-31" v:mid="12" v:groupcontext="shape" v:layermember="0" transform="translate(603,-154.145)">		<title></title>		<path d="M0 297.75 L27.28 297.75" class="st5"></path>	</g>	<g id="shape13-36" v:mid="13" v:groupcontext="shape" v:layermember="0" transform="translate(746.625,-154.032)">		<title></title>		<path d="M0 297.75 L36.65 297.75" class="st5"></path>	</g>	<g id="shape14-41" v:mid="14" v:groupcontext="shape" v:layermember="0" transform="translate(899.625,-154.145)">		<title></title>		<path d="M0 297.75 L27.65 297.75" class="st5"></path>	</g>	<g id="shape16-46" v:mid="16" v:groupcontext="shape" transform="translate(342,-183.039)">		<title></title>		<desc>VPU driver debug log level</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="6.64" y="277.67" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>VPU driver debug <tspan x="31.99" dy="1.2em" class="st4">log level</tspan></text>		</g>	<g id="shape20-50" v:mid="20" v:groupcontext="shape" transform="translate(342,-91.1447)">		<title></title>		<desc>VPU firmware debug log level</desc>		<v:userdefs>			<v:ud v:nameu="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockVert" v:prompt="" v:val="VT0(1):5"></v:ud>			<v:ud v:nameu="CornerLockDiag" v:prompt="" v:val="VT0(0):5"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"></v:ud>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="TopLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="TopRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotLeftOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>			<v:ud v:nameu="BotRightOffset" v:prompt="" v:val="VT0(0.15):0"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="54" cy="281.27" width="108" height="50.9605"></v:textrect>		<path d="M10.8 306.75 L97.2 306.75 A10.7998 10.7998 -180 0 0 108 295.95 L108 266.59 A10.7998 10.7998 -180 0 0 97.2 255.79					 L10.8 255.79 A10.7998 10.7998 -180 0 0 0 266.59 L0 295.95 A10.7998 10.7998 -180 0 0 10.8 306.75 Z" class="st2"></path>		<text x="16.99" y="277.67" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>VPU firmware <tspan x="13.63" dy="1.2em" class="st4">debug log level</tspan></text>		</g>	<g id="shape27-54" v:mid="27" v:groupcontext="shape" v:layermember="0" transform="translate(333,-116.625)">		<title></title>		<path d="M1.01 306.75 L0.65 306.75 L-4.5 306.75 L-4.5 214.86 L0.65 214.86" class="st7"></path>	</g>	<g id="shape28-62" v:mid="28" v:groupcontext="shape" v:layermember="0" transform="translate(288,-153)">		<title></title>		<path d="M0 297.75 L40.5 297.75" class="st8"></path>	</g>	<g id="shape32-65" v:mid="32" v:groupcontext="shape" v:layermember="0" transform="translate(441,-208.52)">		<title></title>		<path d="M9 306.75 L22.5 306.75 L22.5 398.64 L9 398.64" class="st8"></path>	</g>	<g id="shape33-68" v:mid="33" v:groupcontext="shape" v:layermember="0" transform="translate(495,-171.572)">		<title></title>		<path d="M-7.99 315.18 L-8.35 315.18 L-31.5 315.18 L-31.5 316.32" class="st9"></path>	</g></g>
</svg>

Following are the steps to debug the VPU driver and VPU firmware:
1. Mount the `debugfs` node, using the following command:
mount -t debugfs none /sys/kernel/debug/Copy to clipboard
2. Choose VPU driver debug log level and debug log value as listed in the
                        following table. You can also select multiple debug log levels by using the
                        bitmask of debug log values.
| Debug log level | Debug log value |
    | --- | --- |
    | VIDC\_ERR | 0x00000001 |
    | VIDC\_HIGH | 0x00000002 |
    | VIDC\_LOW | 0x00000004 |
    | VIDC\_PERF | 0x00000008 |
    | VIDC\_PKT | 0x00000010 |
    | VIDC\_BUS | 0x00000020 |
    | VIDC\_STAT | 0x00000040 |
    | VIDC\_ENCODER | 0x00000100 |
    | VIDC\_DECODER | 0x00000200 |
    | VIDC\_PRINTK | 0x10000000 |
    | VIDC\_FTRACE | 0x20000000 |

Note: The VPU driver
                                debug logs are limited to error scenarios, and the default debug
                                level is set to `VIDC_ERR`.
3. Set the VPU driver debug log value to the
                            `/sys/module/iris_vpu/parameters/msm_vidc_debug`node.
    1. The following is a sample command to enable all message levels:
echo 0x1000037F > /sys/module/iris_vpu/parameters/msm_vidc_debugCopy to clipboard
4. Choose VPU firmware debug log level and debug log value as listed in the
                        following table. You can also select multiple debug log levels by using the
                        bitmask of debug log values.
| Debug log level | Debug log value |
    | --- | --- |
    | FW\_LOW | 0x00000001 |
    | FW\_MED | 0x00000002 |
    | FW\_HIGH | 0x00000004 |
    | FW\_ERROR | 0x00000008 |
    | FW\_FATAL | 0x00000010 |
    | FW\_PERF | 0x00000020 |
    | FW\_CACHE\_LOW | 0x00000100 |
    | FW\_CACHE\_MED | 0x00000200 |
    | FW\_CACHE\_HIGH | 0x00000400 |
    | FW\_CACHE\_ERROR | 0x00000800 |
    | FW\_CACHE\_FATAL | 0x00001000 |
    | FW\_CACHE\_PERF | 0x00002000 |
    | FW\_PRINTK | 0x10000000 |
    | FW\_FTRACE | 0x20000000 |

Note: The VPU firmware
                                debug logs are limited to error and fatal scenarios, and the default
                                debug level is set to `FW_ERROR | FW_FATAL`.
5. Set the VPU firmware debug log value to the
                            `/sys/module/iris_vpu/parameters/msm_fw_debug`node.
    1. The following is a sample command to enable all message levels:
echo 0x1000037F > /sys/module/iris_vpu/parameters/msm_fw_debugCopy to clipboard
6. Start capturing kernel messages for both the VPU driver and the firmware
                        using the following command and run the usecase:
cat /proc/kmsgCopy to clipboard

## Debug GStreamer plugins

Qualcomm GStreamer video plugins are compliant with the standard GStreamer framework.
                For information on the debug methods for the GStreamer plugins, see [Debug GStreamer Plugins](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html).

Last Published: Jul 12, 2024

[Previous Topic
Configure](https://docs.qualcomm.com/bundle/publicresource/80-70014-20/topics/configure.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70014-20/topics/references.md)