{"record":{"id":"cebcd06d9033972b","repo":"skylot/jadx","slug":"register-d-does-not-exist-size-d-n-s-n-meth","errorCode":null,"errorMessage":"Register %d does not exist (size: %d).\\n %s\\n Method: %s","messagePattern":"Register (.+?) does not exist \\(size: (.+?)\\)\\.\\\\n (.+?)\\\\n Method: (.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"jadx-gui/src/main/java/jadx/gui/device/debugger/RegisterObserver.java","lineNumber":99,"sourceCode":"\t@Nullable\n\tpublic RuntimeVarInfo getInfo(int runtimeNum, long codeOffset) {\n\t\tSmaliRegisterMapping list = getRegListEntry(runtimeNum);\n\t\tfor (RuntimeVarInfo info : list.getRuntimeVarInfoList()) {\n\t\t\tif (info.getStartOffset() > codeOffset) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (info.isInitialized(codeOffset)) {\n\t\t\t\treturn info;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate SmaliRegisterMapping getRegListEntry(int regNum) {\n\t\ttry {\n\t\t\treturn regList.get(regNum);\n\t\t} catch (IndexOutOfBoundsException e) {\n\t\t\tthrow new RuntimeException(\n\t\t\t\t\tString.format(\"Register %d does not exist (size: %d).\\n %s\\n Method: %s\",\n\t\t\t\t\t\t\tregNum, regList.size(), buildDeviceInfo(), mthFullID),\n\t\t\t\t\te);\n\t\t}\n\t}\n\n\tprivate String buildDeviceInfo() {\n\t\tDebugSettings debugSettings = DebugSettings.INSTANCE;\n\t\treturn \"Device: \" + debugSettings.getDevice().getDeviceInfo()\n\t\t\t\t+ \", Android: \" + debugSettings.getVer()\n\t\t\t\t+ \", ArtAdapter: \" + art.getClass().getSimpleName();\n\t}\n\n\t@NotNull\n\tpublic List<Info> getInfoAt(long codeOffset) {\n\t\tif (hasDbgInfo) {\n\t\t\tList<Info> list = infoMap.get(codeOffset);\n\t\t\tif (list != null) {","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/skylot/jadx/blob/e738a26571d02919f01df40de93bc9a44dee4e18/jadx-gui/src/main/java/jadx/gui/device/debugger/RegisterObserver.java#L81-L117","documentation":"Error \"Register %d does not exist (size: %d).\\n %s\\n Method: %s\" thrown in skylot/jadx.","triggerScenarios":"Thrown at jadx-gui/src/main/java/jadx/gui/device/debugger/RegisterObserver.java:99 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Validate the register index against the frame's register count before reading; if the index is out of range, skip the read and log the method and size instead of throwing.","Ensure the debugger requested variables only for the currently suspended frame and that the frame's slot table was refreshed after a step or suspend event."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e738a26571d02919f01df40de93bc9a44dee4e18","analyzedAt":"2026-08-14T00:10:24.238Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}