Skip to content

Stack trace for the case when the debugger is broken after de-synchronising with a debugged Android app. #8710

@ryanmkurtz

Description

@ryanmkurtz

Discussed in #8707

Originally posted by shamefulCake1 November 28, 2025

ERROR Cannot find register container for thread,frame: ghidra.trace.database.thread.DBTraceThread@446e2156,25696   (TraceRmiTarget.java:1209) 
DEBUG (633 ms) HANDLING: startTx(365,Read Memory)   (TimedMsg.java:33) 
ERROR Could not read [00000000, 00000fff]: java.util.concurrent.CompletionException: ghidra.debug.api.tracermi.TraceRmiError: RuntimeError("error: Cannot convert '0x0' to address: unable to evaluate expression while the process is exited: the process must be stopped because the expression might require allocating memory.\n")   (TraceRmiTarget.java:1170) 
DEBUG (259 ms) HANDLING: startTx(366,Read Memory)   (TimedMsg.java:33) 
ERROR Could not read [00000000, 00000fff]: java.util.concurrent.CompletionException: ghidra.debug.api.tracermi.TraceRmiError: RuntimeError("error: Cannot convert '0x0' to address: unable to evaluate expression while the process is exited: the process must be stopped because the expression might require allocating memory.\n")   (TraceRmiTarget.java:1170) 
ERROR Listener Breakpoints - Breakpoints - null caused unexpected exception ghidra.util.exception.ClosedException: File is closed
	at db.buffers.BufferMgr.getCachedBufferNode(BufferMgr.java:895)
	at db.buffers.BufferMgr.getBufferNode(BufferMgr.java:804)
	at db.buffers.BufferMgr.getBuffer(BufferMgr.java:968)
	at db.NodeMgr.getVarKeyNode(NodeMgr.java:327)
	at db.Table.getFieldKeyNode(Table.java:168)
	at db.Table$ShortDurationFieldKeyIterator.initialize(Table.java:3852)
	at db.Table$ShortDurationFieldKeyIterator.<init>(Table.java:3826)
	at db.Table$FieldKeyIterator.<init>(Table.java:3370)
	at db.Table.fieldKeyIterator(Table.java:1985)
	at db.FieldIndexTable.findPrimaryKeys(FieldIndexTable.java:81)
	at db.Table.findRecords(Table.java:1420)
	at ghidra.util.database.DBCachedObjectStore.findOneObject(DBCachedObjectStore.java:1180)
	at ghidra.util.database.DBCachedObjectIndex.getOne(DBCachedObjectIndex.java:159)
	at ghidra.trace.database.target.DBTraceObjectManager.getObjectByCanonicalPath(DBTraceObjectManager.java:383)
	at ghidra.trace.database.target.DBTraceObject.lambda$findCanonicalAncestorsInterface$16(DBTraceObject.java:750)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.stream.Streams$StreamBuilderImpl.tryAdvance(Streams.java:397)
	at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:720)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:652)
	at ghidra.trace.database.breakpoint.DBTraceBreakpointLocation.getSpecification(DBTraceBreakpointLocation.java:321)
	at ghidra.trace.database.breakpoint.DBTraceBreakpointLocation.isEnabled(DBTraceBreakpointLocation.java:185)
	at ghidra.app.plugin.core.debug.service.breakpoint.TraceBreakpointSet.computeTargetMode(TraceBreakpointSet.java:175)
	at ghidra.app.plugin.core.debug.service.breakpoint.TraceBreakpointSet.computeMode(TraceBreakpointSet.java:142)
	at ghidra.app.plugin.core.debug.service.breakpoint.LoneLogicalBreakpoint.computeState(LoneLogicalBreakpoint.java:177)
	at ghidra.app.plugin.core.debug.gui.breakpoint.LogicalBreakpointRow.getState(LogicalBreakpointRow.java:51)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider$EnableSelectedBreakpointsAction.lambda$isEnabledForContext$2(DebuggerBreakpointsProvider.java:391)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider.contextHasMatchingBreakpoints(DebuggerBreakpointsProvider.java:259)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider$EnableSelectedBreakpointsAction.isEnabledForContext(DebuggerBreakpointsProvider.java:391)
	at docking.ComponentPlaceholder.contextChanged(ComponentPlaceholder.java:553)
	at docking.DockingWindowManager.contextChanged(DockingWindowManager.java:2456)
	at docking.AbstractDockingTool.contextChanged(AbstractDockingTool.java:222)
	at ghidra.framework.plugintool.PluginTool.contextChanged(PluginTool.java:1563)
	at docking.ComponentProvider.contextChanged(ComponentProvider.java:542)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider.contextChanged(DebuggerBreakpointsProvider.java:833)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider.lambda$breakpointsUpdated$7(DebuggerBreakpointsProvider.java:931)
	at ghidra.util.Swing.runIfSwingOrRunLater(Swing.java:124)
	at ghidra.app.plugin.core.debug.gui.breakpoint.DebuggerBreakpointsProvider.breakpointsUpdated(DebuggerBreakpointsProvider.java:926)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at ghidra.util.datastruct.ListenerSet$ListenerHandler.lambda$invoke$0(ListenerSet.java:90)
	at ghidra.util.datastruct.ThreadSafeListenerStorage.forEach(ThreadSafeListenerStorage.java:60)
	at ghidra.util.datastruct.ListenerSet$ListenerHandler.invoke(ListenerSet.java:88)
	at jdk.proxy2/jdk.proxy2.$Proxy24.breakpointsUpdated(Unknown Source)
	at ghidra.app.plugin.core.debug.service.breakpoint.DebuggerLogicalBreakpointServicePlugin$RemoveCollector.close(DebuggerLogicalBreakpointServicePlugin.java:146)
	at ghidra.app.plugin.core.debug.service.breakpoint.DebuggerLogicalBreakpointServicePlugin$ChangeCollector.close(DebuggerLogicalBreakpointServicePlugin.java:166)
	at ghidra.app.plugin.core.debug.service.breakpoint.DebuggerLogicalBreakpointServicePlugin.lambda$processChange$0(DebuggerLogicalBreakpointServicePlugin.java:849)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
  (DataStructureErrorHandlerFactory.java:45) 
INFO  Fri Nov 28 20:53:22 CST 2025 Recovery snapshot created: /home/redacted/ocam.rep/idata/00/~00000005.db/snapshotB.grf   (RecoveryMgr.java:385) 
```</div>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions