skylot/jadx · error · RuntimeException

Register %d does not exist (size: %d).\n %s\n Method: %s

Error message

Register %d does not exist (size: %d).\n %s\n Method: %s

What it means

Error "Register %d does not exist (size: %d).\n %s\n Method: %s" thrown in skylot/jadx.

Source

Thrown at jadx-gui/src/main/java/jadx/gui/device/debugger/RegisterObserver.java:99

	@Nullable
	public RuntimeVarInfo getInfo(int runtimeNum, long codeOffset) {
		SmaliRegisterMapping list = getRegListEntry(runtimeNum);
		for (RuntimeVarInfo info : list.getRuntimeVarInfoList()) {
			if (info.getStartOffset() > codeOffset) {
				break;
			}
			if (info.isInitialized(codeOffset)) {
				return info;
			}
		}
		return null;
	}

	private SmaliRegisterMapping getRegListEntry(int regNum) {
		try {
			return regList.get(regNum);
		} catch (IndexOutOfBoundsException e) {
			throw new RuntimeException(
					String.format("Register %d does not exist (size: %d).\n %s\n Method: %s",
							regNum, regList.size(), buildDeviceInfo(), mthFullID),
					e);
		}
	}

	private String buildDeviceInfo() {
		DebugSettings debugSettings = DebugSettings.INSTANCE;
		return "Device: " + debugSettings.getDevice().getDeviceInfo()
				+ ", Android: " + debugSettings.getVer()
				+ ", ArtAdapter: " + art.getClass().getSimpleName();
	}

	@NotNull
	public List<Info> getInfoAt(long codeOffset) {
		if (hasDbgInfo) {
			List<Info> list = infoMap.get(codeOffset);
			if (list != null) {

View on GitHub (pinned to e738a26571)

Solutions

  1. 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.
  2. 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.

When it happens

Trigger: Thrown at jadx-gui/src/main/java/jadx/gui/device/debugger/RegisterObserver.java:99 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of skylot/jadx@e738a26571 (2026-08-14). Data as JSON: /api/errors/cebcd06d9033972b. Report an issue: GitHub.