{"record":{"id":"ffb62f27190a32f3","repo":"NationalSecurityAgency/ghidra","slug":"usage-ghidra-trace-sync-disable","errorCode":null,"errorMessage":"Usage: ghidra trace sync-disable","messagePattern":"Usage: ghidra trace sync-disable","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"Ghidra/Debug/Debugger-agent-lldb/src/main/py/src/ghidralldb/commands.py","lineNumber":2047,"sourceCode":"    hooks.install_hooks()\n    hooks.enable_current_process()\n\n\n@convert_errors\ndef ghidra_trace_sync_disable(debugger: lldb.SBDebugger, command: str,\n                              result: lldb.SBCommandReturnObject,\n                              internal_dict: Dict[str, Any]) -> None:\n    \"\"\"Cease synchronizing the current process with the Ghidra trace.\n\n    Usage: ghidra trace sync-disable\n\n    This is the opposite of 'ghidra trace sync-enable', except it will not\n    automatically remove hooks.\n    \"\"\"\n\n    args = shlex.split(command)\n    if len(args) != 0:\n        raise RuntimeError(\"Usage: ghidra trace sync-disable\")\n\n    hooks.disable_current_process()\n\n\n@convert_errors\ndef ghidra_trace_sync_synth_stopped(debugger: lldb.SBDebugger, command: str,\n                                    result: lldb.SBCommandReturnObject,\n                                    internal_dict: Dict[str, Any]) -> None:\n    \"\"\"Act as though the target has just stopped.\n\n    This may need to be invoked immediately after 'ghidra trace sync-\n    enable', to ensure the first snapshot displays the initial/current\n    target state.\n    \"\"\"\n\n    hooks.on_stop(None)  # Pass a fake event\n\n","sourceCodeStart":2029,"sourceCodeEnd":2065,"githubUrl":"https://github.com/NationalSecurityAgency/ghidra/blob/d5f144c24d6bc53c9cbf4448c6d11143e7696206/Ghidra/Debug/Debugger-agent-lldb/src/main/py/src/ghidralldb/commands.py#L2029-L2065","documentation":"Raised by ghidra_trace_sync_disable when any argument is supplied. sync-disable stops synchronizing the current process (the inverse of sync-enable) but leaves hooks installed; it is parameterless (commands.py:2047).","triggerScenarios":"Appending a process id or `all` like `ghidra trace sync-disable 0`, or trailing text.","commonSituations":"Users expect to disable sync globally or for a non-current process; the command affects only the current process. They then notice other processes still sync.","solutions":["Run bare: `ghidra trace sync-disable`.","Select each process and repeat to disable sync per process; hooks remain installed (use remove-hooks to tear them down)."],"exampleFix":"// before\nghidra trace sync-disable all\n// after\nghidra trace sync-disable","handlingStrategy":"validation","validationCode":"assert len(command.split()) == 0, \"sync-disable takes no arguments\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["sync-disable affects only the current process; repeat per process.","Hooks stay installed — use remove-hooks to fully tear down."],"tags":["lldb","ghidra","cli-usage","debugger-agent","sync"],"backgroundTag":null,"analyzedSha":"d5f144c24d6bc53c9cbf4448c6d11143e7696206","analyzedAt":"2026-08-14T01:00:57.564Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}