Ghidra/Configurations/Public_Release/src/global/docs/ChangeHistory.md
PseudoDisassembler to use the normal high level Disassembler instead of calling Language.parse(). (GP-6496)ldpsw instruction. (GP-5590, Issue #6469, #8008)tbit instruction. (GP-6181, Issue #8716)vadduws instruction that was mistakenly commented out. (GP-6268, Issue #8821)ldar instruction. (GP-6473, Issue #6467, #8014)sdbbp16. (GP-6489)save and restore instructions, and refactored coprocessor register read/write. (GP-6501)@execute annotation is no longer supported. (GP-6413)NullPointerException that could occur upon closing the Debugger. (GP-6376)run command from GDB's CLI) caused duplicate breakpoint entries and GUI glitches. (GP-6027)void * data-type. (GP-6388, Issue #8887)support/launch.properties by adding the line: VMARGS=-Djdk.rmi.ssl.client.enableEndpointIdentification=false. (GP-6426, Issue #8940)sha1h instruction to shift instead of rotate bits. (GP-4501, Issue #6398)lui instruction to only parse on extended words. (GP-6419)Find References... action. (GP-6395, Issue #8921)Structure.insertAtOffset will now skip forward over existing zero-length components at the insert offset before performing insert of new component.inst_next2. (GP-6134, Issue #8646)commons-lang3 , log4j, and postgresql jars. (GP-6243)ldapr instruction semantics to properly read memory. (GP-6358, Issue #6593)se_blrl instruction semantics. (GP-6379, Issue #6207)ldrexd instruction when the operands are the same register. (GP-6381, Issue #6590)PcodeTraceDataAccess.intersectUnknown in favor of intersectViewKnown with sutract.InstructionPrototype.hasNext2Dependency().packaging, setuptools, and wheel Python wheels. (GP-6284, Issue #8852)NullPointerException in the emulation service when forking from a live target. (GP-6298)NullPointerException in function graph middle-mouse highlighter. (GP-6254, Issue #8798)R_PPC_ADDR16_HA(6) and R_PPC_ADDR16_LO(4). (GP-6329)RecoverClassesFromRTTIScript where it could get into an infinite loop if the option to shorten template names in structures is set and there are exact template names in multiple parent namespaces. (GP-6183, Issue #8199)AttributeError when performing a from pyghidra import *. (GP-6241, Issue #8789)pyghidra.analysis_properties() and exceptions being inadvertently squashed by some API functions. (GP-6283, Issue #8018)repeat the preceding graphics character (REP) (CSI Ps b) terminal code logic, as such sequences were breaking the Terminal. (GP-6191)ghidra.net.ApplicationSSLSocketFactory has been replaced by ghidra.net.DefaultSSLSocketFactory. This is currently used by BSim when communicating with a <I>postgresql</I> server.TraceTimeManager.findSnapshotWithNearestPrefix(). Several new methods in TraceSchedule, including: hasPSteps, stepCount, dropLastStep, lastStep, truncateToSteps.TraceSnapshot.isSnapOnly() and .isStale().OpBehaviorOther.evaluate implementations has dropped the first input varnode which was used to identify the OpBehaviorOther implementation. Only the inputs which are specified by the arguments passed to the named pcodeop within the slapsec are now passed to this method. NOTE: The actual API change occurred within Ghidra 11.3 with GP-4643 change.RGB16 and RGB32 Color primitive datatypes which have been implemented as unsigned integer types and will render a color patch for Data within the Listing. These default, respectively, to RGB_565 and ARGB_8888 encodings but can adopt a different RGB Encoding through the use of a Typedef and a default Setting. (GP-4310, Issue #6191)ENDBR64 and ENDBR32 to function start patterns for x86 gcc. (GP-5287).pltgot. symbols. (GP-3091, Issue #570)SourceType checks which should avoid use of equality checks in favor of priority checks when covering a range of sources. (GP-6008)support/launch.properties now supports expansion of ${var}-style environment variables. (GP-6022)getmetadata subcommand to bsim command-line utility. (GP-5748, Issue #8176)max_primitives filter to homogeneous aggregate type in cspec files. (GP-5367)DI register. (GP-5958, Issue #8416)DataTypeQueryService for clients to have more flexibility in how they retrieve data types. (GP-5694, Issue #8157)protobuf-java 4.31.0 and protobuf 6.31.0 for Python. (GP-5456)PcodeStepperPlugin. (GP-5772)lldbsetuputils.ps1 script. (GP-5973, Issue #8498)Ctrl-Shift-1) for PCode field in the Listing display. (GP-5930).debug_macro sections and example script, DWARFMacroScript. (GP-5792)R_AARCH64_ADR_GOT_PAGE, R_AARCH64_P32_ADR_GOT_PAGE, R_AARCH64_P32_LD32_GOT_LO12_NC, and R_AARCH64_LD64_GOT_LO12_NC. (GP-5815, Issue #8253)Enter key. (GP-5769, Issue #8280)TableColumnDescriptor to create simple columns using only a name, column type, and a function to map from the row object to the column object. (GP-5963, Issue #7346)Alt key independently from the left Alt key. (GP-5978, Issue #8205)VLD/VSTn instructions. (GP-5853)fmadd operand semantics ordering. (GP-6121, Issue #8454, #8625)ExternalLocation data. (GP-5498)@runtime metadata comment now default to PyGhidra instead of Jython. Jython scripts will need to include the "# @runtime Jython" script header in order to continue running within the Jython environment. (GP-5415, Issue #7856)print(String, Color) and println(String, Color). (GP-5970, Issue #2849)RecoverClassesFromRTTIScript where pure virtual functions were not handled correctly in GCC programs. (GP-5993)unique) variables can be accessed within a Sleigh language piece-wise using a direct varnode offset and length rather than masking which had inherent size limitations. (GP-5581)SourceType priority. (GP-5661)INT3 as possibly being non-returning. (GP-5763)segment() op in stack analysis when segment op is unknown stack segment SS. (GP-6078, Issue #8584)SBORROW(0,x) => 0 simplification rule from Decompiler analysis. (GP-5934, Issue #8396, #8400)security_check_cookie() function in VS2022 binaries. If the function is not identified, the return type is incorrectly recovered by the Decompiler. (GP-5998, Issue #2743)vmvn instruction semantics. (GP-4650, Issue #6544)FSCA instruction destination operand and FPU-register ABI-ordering for little-endian. (GP-5759, Issue #8192)ANL instruction variant disassembling as ADD. (GP-5903, Issue #8393)ANL Areg,Data source-mode disassembly bug. (GP-5904, Issue #8394)CALLX instruction. (GP-5909, Issue #7972)bclr instruction. (GP-6065, Issue #8579)cpy instruction setting the PC, incorrect function start pattern, and spurious references when saving the PC at function entry. (GP-6079)GhidraScript.writer member variable to properly get used in the various GhidraScript.print*() methods. (GP-5737)runScript() now have their local variables properly reset to a fresh state. (GP-5981)print() and sys.stdout.write() to the Ghidra GUI scripting console. (GP-6021, Issue #8524)AutoImporter class has been deprecated. Use the new ProgramLoader.Builder class instead. The returned Loaded class should now be managed with a try-with-resources pattern. If a DomainObject is extracted from a Loaded object, it must be released independly of closing the Loaded object.DbgTimer.DataTypeQueryService.getDataType(). This method has been replaced by promptForDataType().GHIDRA_HOME now points to <ghidra-install>/Ghidra. MODULE_HOME now points to containing module root. Can request MODULE_Xxx_HOME pointing to module Xxx root by placing @depends Xxx in header.TraceObjectX interfaces into TraceX (only those derived from TraceObjectInterface). To avoid confusion, renamed TraceMethod (in Java TraceRmi Client) to TraceRmiMethod. Renamed TraceBreakpoint to TraceBreakpointLocation. Added TraceBreakpointSpecification, TraceBreakpointCommon. Deleted TraceAddressSpace in favor of AddressSpace. Added DebuggerCoordinates.isRegisterSpace(). Space-based managers, e.g., TraceMemoryManager, no longer have special tables for register spaces. They all use the overlay-named-after-register-container convention. Added TraceBaseCodeUnitsView.get(platform,snap,register,forward). Memory region management is moved from TraceMemoryOperations to TraceMemoryManager. Removed experimental and incomplete TraceProgramView.getViewRegisters() method and related. Removed thread parameter from TraceLabelSymbolView.add/create. Added variant of TraceLabelSymbolView.add/create that takes platform(optional),thread,register (and similar with getters in TraceSymbolWithLocationView). Added methods to DefaultSchemaContext and related builders to more easily build a context derived from an existing one. Added TraceObjectManager.requireRootSchema(). Added TraceRegisterUtils.getRegisterContainer, getRegisterAddressSpace, getThread, and getFrameLevel.TraceReference.getToRange. Added TraceReferenceOperations.addMemoryReference(...AddressRange toRange...). Added TraceReferenceOperations.getReference(...AddressRange toRange...). Added TraceReferenceOperations.getReferencesToRange(...order).WatchRow.get/setComment.SymZ3PcodeEmulator and related.EmulatorUtilities.PcodeEmulationCallbacks, PcodeStateCallbacks, ComposedPcodeEmulationCallbacks. Added Writer and TraceWriter. Added PieceHandler and implementations for byte[], TaintVec, and SymValueZ3. Added TraceEmulationIntegration. Added DebuggerEmulationIntegration. Deleted TracePcodeMachine, DebuggerPcodeMachine and all implementations. PcodeMachine is used with a Writer/callbacks instead. Deleted TracePcodeExecutorStatePiece and all implementations. PcodeExecutorStatePiece is used with callbacks instead. Deleted AbstractDebuggerPcodeEmulatorFactory. EmulatorFactory is used instead. Deleted TraceEmulatorPartsFactory, DebuggerEmulatorPartsFactory and all implementations. EmulatorPartsFactory is used instead. Changed constructor of AbstractPcodeMachine to require callbacks. Changed constructor of AbstractLongOffsetPcodeExecutorStatePiece and derivatives to require callbacks. Changed signature of PcodeExecutorStatePiece.fork to require callbacks. Changed signature of EmulatorFactory.create to accept a Writer. Changed signatures of several methods in EmulatorPartsFactory to accept callbacks.<B>Secondary changes</B>: Added PcodeTraceAccess.deriveForWrite(snap). Added PcodeTracePropertyAccess.getEntry/put. The put method is also modified to clear if value is null. Added PcodeArithmetic.getDomain. Added PcodeExecutorStatePiece.streamPieces. Added AbstractPcodeExecutorState. Added PcodeExecutorStatePiece.get/setVarInternal. Added PcodeExecutorStatePiece.getNextEntryInternal. Renamed DebuggerPcodeEmulatorFactory to EmulatorFactory. Changed signature of PcodeDebuggerMemoryAccess.readFromStaticImages. Several changes to AbstractLongOffsetPcodeExecutorStatePiece and its derivatives. See stock implementations for updates. In particular, removed all notion of "backing" including the type parameter B.
PcodeUseropDefinition.getOutputType(). AnnotatedPcodeUseropLibrary allows @PcodUserop methods to take int[] parameters, including for the @OpOutput parameter.LocalFileSystemSub class.throws IOException from ByteProvider.length() method.CodeComparisonPanel extension point has been renamed to CodeComparisonViewer. Any clients subclassing CodeComparisonPanel will need to rename their parent class reference and also rename their extension to end with CodeComparisonView instead of CodeComparisonPanel.GhidraComboBox.setEnterKeyForwarding(boolean) method. Any clients calling this method with a value of true may simply delete the call to maintain the previous behavior, Any clients calling this with a value of false will need to change how the combo box responds to Enter key presses in a way that preserves effect of not passing the Enter key press up to the parent container.TableColumnDescriptor to create simple columns using only a name, column type, and a function to map from the row object to the column object.XmlElement.isStart(String string), which checks that the element is a starting element and also that its name matches the passed string.Loader.load() and Loader.loadInto() interface definitions have been simplified to take in a new ImporterSettings record. The Loader.getDefaultOptions() definition has also been changed to accept a new mirrorFsLayout parameter. These changes trickle down the loader class hierarchy, so all 3rd party loaders will need to be updated to work with Ghidra 12.0.ExternalManager interface including removal of previously deprecated methods which have new method names. The getExternalLocations now returns a Set of locations instead of a List.Listing.getCompositeData method and associated map table from the Program database. These methods were never used within Ghidra and were found to be the source of unnecessary overhead.For infrequent needs, a defined-data iterator can be used to identify locations where composites exist. In addition, the following related Program and Trace events were eliminated: ProgramEvent.COMPOSITE_ADDED, ProgramEvent.COMPOSITE_REMOVED
ChangeManager.DOCR_COMPOSITE_ADDED,
ChangeManager.DOCR_COMPOSITE_REMOVED,ProgramEvent.COMPOSITE_ADDED, ProgramEvent.COMPOSITE_ADDED.ProjectDataUtils in support of folder and file links. This utility's static methods should be used in place of directly instantiating DomainFileIterator or DomainFolderIterator. Significant changes have been made to ProjectData storage and interface to accommodate expanded link-file support. The getFile and getFolder methods have been overloaded with an optional filter to control treatment of such link-files where the pre-existing method forms will ignore external links. Extensive changes have also been made to the Project Data Tree component which now has the ability to render and follow folder and file links. Since a folder link exists as a DomainFile, and all link-files rely on unique content-types, additional logic is needed to follow such links. LinkFileInfo can be obtained from a DomainFile although the use of ProjectData and ProjectDataUtils will simplify the use of link-files.GhidraScript.set() method that takes a new ScriptControls object which provides more control over how scripts write to stdout and stderr.pyghidra.open_program and pyghidra.run_script..plt so that they are marked up very early. (GP-5526)ghidraSvr script and server.conf with improvements to restrict service wrapper memory consumption. (GP-6067)NullPointerException that occurred during PDB load/analysis that was caused by a function null container class. (GP-6100, Issue #8596).cspec so that the Decompiler sees the value as preserved across subroutine calls. (GP-5912, Issue #4387)highSymbol was null. (GP-5919, Issue #8413)IntelHexExpoter no longer fails due to falsely identifying a 32-bit program as 64-bit. Additionally, the address space option is no longer hidden. (GP-5910, Issue #8409)IMAGE_FUNCTION_RUNTIME_ENTRYs, and prevented some PE binaries from importing. (GP-5916, Issue #8414)IMAGE_RESOURCE_DIRECTORY_ENTRY data type is now correctly defined as a structure instead of a union. (GP-5935, Issue #8446)IMAGE_FUNCTION_RUNTIME_ENTRYs are now all marked as functions. (GP-5811, Issue #8321)__stdcall_softfp) for 32-bit ARM. (GP-4989, Issue #6958)ghidra or java directory on the current working directory. (GP-5810, Issue #8190)SymbolicPropogator, has been changed to record pre/post values at the beginning and end of instructions by default. This affected the ResolveX86orX64LinuxSyscallsScript and GolangSymbolAnalyzer. (GP-5804)IndexOutOfBoundsException in decompiled code comparison algorithm. (GP-5361, Issue #7028, #8125, #8289)NullPointerException on Select Current Module action when the cursor is not in a module. (GP-5790)NullPointerException in example InstallCustomLibraryScript.java. (GP-5799, Issue #8296)RulePtrsubUndo. (GP-5856, Issue #7997)vex.1vvv operands. (GP-5766)call instruction operand decoding. (GP-5858, Issue #7929)FlatProgramAPI.analyzeAll(Program) from picking up analyzer options set in the script. (GP-5802, Issue #8287)UnsupportedOperationException seen when using Version Tracking. (GP-5876, Issue #8094)Target.forciblyCloseTransactions().InstructionPrototype.getSeparator(), as it was unused.docker/README.md for information about how to build the docker image for Ghidra and how to run the Ghidra container. This feature includes headless, ghidra-server, bsim-server, bsim, pyghidra, and gui entrypoints. (GP-3579)rr via gdb. (GP-5452, Issue #3133)catch methods for gdb. (GP-5466)Unix A.out binary file format. (GP-3182, Issue #4943, #5004)support/make-postgres.sh script now runs on linux_arm_64 and mac_arm_64 platforms. (GP-5282, Issue #7287)AddProgramToH2BSimDatabaseScript to prevent the generation of signatures when a program has unsaved changes or no functions. (GP-5562, Issue #7897)-std=c23 option by default. (GP-5680, Issue #8122)BadDataType, allowing their size and field names to be preserved. Each affected component comment will also be updated to indicate the name of the datatype that was removed. A similar situation for a Structure bit-field will revert its base datatype to an appropriate primitive integer type if it had been based upon a deleted Enum or Typedef. (GP-2949)unpack action to include typedef of arrays and structures. This change also corrects unpacking of structures which contain zero-length components. (GP-5527, Issue #7528)dbgeng-trace connector. Navigating in the Time window or using the Go-To Time action now issues the corresponding !tt command, and vice versa. (GP-4209)bx instruction. (GP-3771, Issue #5658)Enter on a row in the Time Selection dialog now confirms the dialog. (GP-5674)InstallationGuide.md to GettingStarted.md. (GP-5598)F2 on an uneditable cell. (GP-5316, Issue #7241)Static symbols section of a MAP file. (GP-5530, Issue #7945)dyld_shared_cache filesystem no longer throws exceptions when trying to perform slide fixups on very large cache files. (GP-5357)LC_REEXPORT_DYLIB load command, transitively exporting the exported symbols from one library to another. (GP-5429, Issue #7537)PUSH FS and PUSH GS variants. (GP-5638, Issue #6602)@menupath. (GP-5428)GccAnalysisScript since it is no longer maintained and has been long since replaced with the RecoverClassesFromRTTIScript. (GP-5451, Issue #7871)nested_project_location optional parameter to False. (GP-5627, Issue #8040)moduledata structure and subsequently all RTTI and function information in stripped PE binaries. (GP-5728, Issue #8213)MSABI prototype in x86-64-gcc.cspec. (GP-5183)BreakpointMarkerPlugin. (GP-5364)NullPointerException in tab panel when exiting. (GP-5540, Issue #7956)Esc keybinding after restarting Ghidra. (GP-5599)\) caused a stack trace. (GP-5615, Issue #8038)Ctrl-Mouse-Click to clear the table selection when showing the popup menu. (GP-5618, Issue #7902)dyld_shared_cache filesystem now exposes a complete set of files that encompass the cache's entire address space. Performing an Add To Program on broken references should no longer result in the address not being found. (GP-5349)INCSS/RDSSP instructions. (GP-5267, Issue #6520)LDnR instructions only writing to one register. (GP-5286, Issue #6470)PUSHF and POPF constructors in x86. (GP-5424, Issue #6601)dsb instruction. (GP-5587, Issue #7996)sub instruction semantics. (GP-5659, Issue #8144)CVTTSD2SI instruction. (GP-5665, Issue #8004, #8151)max and minu instructions. (GP-5729, Issue #8215)GhidraProject.openProject() now throws NotFoundException, NotOwnerException, LockException.DataType.getDocs() method.AbstractAsyncServer, AsyncClaimQueue, AsyncLock, AsyncLoop, AsyncPairingCache, AsyncRace, AsyncSequence*, BitmaskSet, DebugByteChannel, TypeSpec and related, without replacements.UnwoundFrame.evaluate(Program, Varnode, AddressSetView).TraceUniqueObject derivatives now require a snap argument. For getters, this is the snap for which the value is sought. For setters, this implies the effect is from that snap onward. In most cases, the GUI's current snap is suitable. (The deprecated legacy-mode objects ignore the argument.) This required argument has cascaded throughout many other parts of the API: DebuggerStaticMappingService, AutoMapSpec, MapProposal.MapEntry, DebuggerStaticMappingService, ProgramModuleIndexer, DebuggerObjectActionContext, DebugerSectionActionContext, BreakpointActionSet, and *EmuBreakpointActionItem. Additionally, getLifespan and similar, including setters and "split-and-set," have been removed from most TraceObjectUnique derivatives. For cases where you need to check if the object is valid at a particular time, use isValid(long). For cases where you need to enumerate (e.g., to plot) the life, use the underlying TraceObject. To truncate the life of an object, use remove(long). For TraceThread in particular, the destruction snap is now considered part of its life, which is consistent with how every other object has been treated. Connectors should (and already have been) using remove, which sets the "destruction snap" to the one preceding the current.typing.Annotated when parameters need additional description. Client.create_trace() now also requires a named parameter extra. On the Java side: Added TraceTimeManager.findScratchSnapshot. The trace-rmi protocol has also changed.action="break_ext" now appear in the new drop-down. TraceRmi methods can now also specify their menu icon, as well as the text for their confirmation button in parameter dialogs. These are the icon and ok_text attributes, respectively. The icon attribute should be the id of an icon given in a theme.properties file.DebuggerListingService.getAutoReadMemorySpec(). Moved AutoReadMemorySpec into the Debugger-api module. Created AutoReadMemorySpecFactory and refactored accordingly.Trace.getBaseDataTypeManager() method. Added TracePlatform.getDataTypeManager() method. Added TraceBasedDataTypeManager.getPlatform() method. TraceDefinedDataView.create() now takes optional platform argument. Added TraceVariableSnapProgramView.setPlatform() method. DebuggerPlatformService.setCurrentMapperFor() has an additional focus parameter. Most methods in DebuggerPlatformMapper now take both object and snap parameters. Added AbstractDebuggerPlatformMapper.getDisassemblyPlatform() method. DbgengX64DisassemblyInject.Mode and related methods moved to DbgengDebuggerPlatformOpinion.DebuggerStaticSyncService interface and its Plugin implementation. Moved DebuggerOpenProgramActionContext into API project. Added DebuggerConsolePlugin.clear() method.TraceHighlightEvent.
Added TrackingChangedPluginEvent.
Added AbstractLocation/Selection/HighlightPluginEvent.AbstractTarget are removed without replacement. Target.collectActions now requires an argument specifying how its object arguments are gathered.UnwindInfo.maskOfReturn.TimeRadix class. Added TraceTimeManager.set/getTimeRadix methods. TraceSchedule.toString and .parse methods now accept radix argument. Span.toString can now accept custom endpoint formatter.GTree.forceNewNodeIntoView() has been replaced by GTree.whenNodeIsReady().int to indicate a CommentType in favor of the newly created enum.pyghidra.open_program() now accepts a program_name parameter, which can be used to override the program name derived from the binary_path parameter. (GP-5521).plt table linkage. (GP-5411)'s) were accidentally created at the same address. When running the RecoverClassesWithRTTIScript with the two symbols, this caused incorrect vftable structures to be applied. (GP-5422, Issue #7876)ClassCastException that could occur when extracting Mach-O files from a dyld_shared_cache. The exception was due to the Mach-O having very large symbol table offsets. (GP-5371, Issue #7436).reginfo section. (GP-5406)24REL handling. (GP-5449, Issue #7868)vselgt conditional instruction semantics. (GP-4648, Issue #6531)vdup instruction semantics. (GP-4649, Issue #5669, #6542)ENTER, LEAVE, IRETQ, and RETF instructions. (GP-5011, Issue #6923)pop instruction macros for some instruction variants. (GP-5299, Issue #7326)COM instruction pcode. (GP-5305, Issue #5767, #6336)strt instruction. (GP-5386, Issue #7514)RecoverClassesFromRTTIScript check to make sure GCC VMI typeinfo structures have valid number of bases in structure. (GP-5389, Issue #7516)open_program() now handles locked projects better. (GP-5444, Issue #7536)pure emulation trace object schema.LifeSet.spans() now returns a NavigableSet.svrAdmin -grant command line tool may be used to assign a new Admin to a repository. Currently, when a user is removed from the server they are removed from all repository ACLs which could leave a repository without an Admin which will fail on server startup. (GP-5368)JAVA_HOME environment variable was set. (GP-5381, Issue #7503)0x0. (GP-5365)vld4 and vst4 instructions. (GP-5268)application.settingsdir property set in Ghidra's launch.properties. (GP-5372, Issue #7481)DW_LNS_const_add_pc instruction. (GP-5353)PasswordDialog constructors to simplify those used for password-only entry.Load Libraries action that allows the user to load libraries after a program has already been imported. (GP-4919, Issue #396)VSCodeProjectScript.java script. (GP-5148)SourceFilesTablePlugin for viewing source file information and managing local paths. (GP-4190)status command to bsim_ctl. (GP-5129, Issue #7102)bsim command line tool and API. Updated BSim Server Manager GUI to allow user login name to be specified for postgres/elastic BSim server entries. (GP-5167)openssl 3.2.2. (GP-5212, Issue #6115, #7084)ccmp instruction. (GP-5158)int type in Swift binaries has been changed from 8 bytes to 4 bytes. The Swift Demangler now demangles the Swift.Int type to __int64 (or __int32 on 32-bit programs) to avoid conflicts with non-Swift structures and functions that may be found in the program. (GP-5182, Issue #6784)undefined) datatype. Changed Demangler to produce undefined-typedef in place of a DWORD-typedef when producing a default-named datatype. Demangler will still create an empty named Structure in many cases. Decompiler will no longer assign the undefined datatype to variables. (GP-4886)Ctrl-Space). (GP-4947)Nimbus to Flat Light. (GP-4973)Backspace and Enter. (GP-5007, Issue #6972)Flat Dark table inactive selection color. (GP-5108, Issue #7134)Escape key to close windows that contain only a single component provider. (GP-5114, Issue #7136)Ctrl-F to place focus on the cursor. Also added an action to hide and show the filter. (GP-5115, Issue #7136)Downloads folder to the File Chooser. (GP-5118, Issue #7121)0x. (GP-4955, Issue #6912)GhidraScript.askFile() no longer throws an IllegalArgumentException in headless mode when passing in a valid path argument to a file that does not yet exist. (GP-5010, Issue #7025)OpenSourceFileAtLineInVSCodeScript.java and OpenSourceFileAtLineInEclipseScript.java for communicating source map information to vscode and eclipse. (GP-5217)WildcardAssembler to have less stringent requirements for input contextreg values. (GP-5288, Issue #7195)NullPointerException in BSimFeatureVisualizer. (GP-5252, Issue #7311)#error directive is encountered. Numerous parsing errors involving comment parsing have been fixed. (GP-5025, Issue #7001)__vectorcall, __rustcall, and __pascal calling conventions. (GP-5150)dbgmodel.dll. (GP-5195)NullPointerException from TraceModule.getBase().getAddressSpace() commonly seen when launching and mapping Windows targets. (GP-5102, Issue #7153)Saveable TracePropertyMap. (GP-5121)Flat Light or Dark themes. (GP-4993, Issue #6952)IMAGE_DEBUG_MISC processing. (GP-5199, Issue #7285)NullPointerException that could occur when processing debug COFF symbol information. (GP-5321, Issue #7411)ghidraSvr script and other Ghidra launch scripts through the use of JAVA_HOME environment variable. (GP-5161)NullPointerException when restoring a program tree window in which a tab was previously closed. (GP-5279)DebuggerObjectModel and most of its related paraphernalia have been removed. Other parts have been refactored into other components. DebuggerObjectModel / TraceRecorder is replaced by TraceRmi / Target. TargetObject is replaced by TraceObject. Some TargetObject interfaces, e.g., TargetDeletable, do not have replacement TraceObject interfaces. Instead, they are implied by applicable RemoteMethods. Others, e.g., TargetAccessConditioned, are removed without replacement. DataType- and Symbol-related objects are removed. They have not been used. If needed later, the intent is to provide rmi-based access to the trace's symbol table and data type manager. TargetObjectSchema is replaced by TraceObjectSchema. TraceObjectKeyPath is renamed KeyPath. PathUtils and many uses of List<String> have been replaced by KeyPath. AnnotatedSchemaContext and related are removed. SshPtyFactory and related are removed.JitPcodeEmulator and many, many related classes. PcodeArithmetic: changed modBeforeStore and modAfterLoad to include AddressSpace and PcodeOp parameters. SleighInstructionDecoder.decodeInstruction now returns a PseudoInstruction. PcodeExecutor: added getIntConst, getLoadStoreSpace, getLoadStoreOffset, getStoreValue, getBranchTarget, getConditionalBranchPredicate, getIndirectBranchTarget, getUseropName, getCallotherOpNumber.BSimServerInfo class or the userinfo field of postgres/elastic BSim URLs. The user argument has been dropped to the FunctionDatabase.changePassword method which will always change the password for the connected user. Renamed FunctionDatabase.Error class to FunctionDatabase.BSimError to avoid naming conflict with java.lang.Error.FileDataTypeManager static methods for creating a Data Type Archive with a specific processor and compiler specification. Improved CParserUtils parse methods to separate the cases where parsing into an existing Data Type Manager versus parsing into a new Data Type Archive where a processor and compiler specification may specified.DebuggerListingProvider#setAutoReadMemorySpec and related no longer accept LoadEmulatorAutoReadMemorySpec. Added AutoReadMemorySpec#getEffective.DecompileOptions to remove the getFunctionColor() method. There is no replacement for this method as the function color is now being set in the Listing Settings menu and is coordinated across the Listing and Decompile panes.Demangler interface, Ghidra 9.2-deprecated methods were removed, Ghidra 11.3-deprecations were set on other methods, and new methods were created. The new methods and much of the Demangler fabric now makes use of a MangledContext in place of a String. This allows greater flexibility in controlling how symbols get demangled. These changes have been reflected in abstract and non-abstract methods in AbstractDemanglerAnalzyer. Users of deprecated methods within Demangler and DemanglerUtil should migrate to newer methods (see javadoc).docking.KeyEntryPanel, as a drop-in replacement for clients using the docking.KeyEntryTextField. This is not a required change.evaluateToLong(String s) in AddressEvaluator has been moved to a new class called ExpressionEvaluator. Also, the AddressInput field component has been changed to accept Programs instead of just an AddressFactory (which is still supported) so that any dialog using an AddressInput component can now accept symbol names, memory block names, and mathematical expressions.lookup(path, comparator). Classes that fail to provide an implementation will fall back to using lookup(path), and an error will be logged.findBytes() no longer supports finding matches that span gaps in the memory blocks. The internal classes for performing memory searches were completely re-written in Ghidra release 11.2. In release 11.3, the old classes were removed and uses of them in the findBytes() method were replaced with the new memory search code. The new search API currently does not support matches that span non-contiguous memory and it isn't clear if that is actually useful; so for now, that method was deprecated and no longer finds matches in gaps even if the boolean is true. In the unlikely event someone actually uses this, please contact the Ghidra team.AssemblyResolvedPatterns.withContext. Added ContextCommit.getWordIndex and getMask.json-simple library in favor of gson.TraceBreakpoint.isAlive(long snap). Deprecated TraceBreakpoint.getLifespan(). Added TraceObject.isAlive(long snap).DebuggerCoordinates.equalsIgnoreRecorderAndView to equalsIgnoreTargetAndView. Added DebuggerCoordinates.differsOnlyByPatch. Added TraceSchedule.differsOnlyByPatch. Added Sequence.differsOnlyByPatch.DebuggerAddRegionDialog#setName to setPath.Undefined<n>. (GP-4696, Issue #6636)lsh.zip plug-in for the BSimElasticPlugin extension. (GP-5043, Issue #7051, #7054)synchronous_commit setting for BSim postgresql database and eliminated some warnings in the postgresql logs. We now ensure that all DB connections are closed properly when the Ghidra process exits normally to avoid unnecessary server logging of failed DB connection errors. (GP-5082, Issue #6951)FileDataTypeManager affecting use of DataType Archives on Windows platforms which could produce an error during resource cleanup. (GP-5090)Control Flow Guard structures, preventing the binary from successfully importing. (GP-5009, Issue #6960)VSCodeProjectScript.java that resulted in the Extensions/Ghidra/Skeleton directory not being found. (GP-4971, Issue #6971)support/gradle/gradlew(.bat) which can be used to perform all Gradle commands without the need for prior Gradle installation. The Gradle wrapper requires an Internet connection to work. Offline Gradle installations on the PATH continue to work the same way as before. (GP-4486, Issue #455)Ctrl-A to select all in the Python window. (GP-4605, Issue #6502)VSCodeProjectScript, which can create a new Visual Studio Code project that is setup to do Ghidra scripting and module development, with similar capabilities to the Eclipse GhidraDev plugin. (GP-4795)o7 link register. Also fixed 64/32 relocations, sparc calling conventions, and added several missing instructions and hidden structure return pointer location. (GP-3808, Issue #5646, #6300)MIDIDataType and audio player for embedded MIDI scores. (GP-4516, Issue #6337)RTTIAnalyzer to improve its determination of the end of virtual function tables. (GP-4748)connect/disconnect actions to BSim Server Manager. This will allow an idle connection to be disconnected without the need to exit Ghidra or removing a server entry, which, in the case of a local H2 database, will allow another process to use it. (GP-4867, Issue #6703)Ctrl-Shift-D keyboard shortcut. (GP-4148, Issue #5975, #6576)ldefs language definition files. (GP-4675)noexcept attributes and certain type name suffixes. (GP-4626) `anonymous namespace' strings to their underlying anonymous name to avoid namespace conflicts. (GP-4717, Issue #6661)char8_t primitive type to DemangledDataType. (GP-4823)Copy Special actions have been added for imagebase offset, memory block offset, and function offset (disabled by default). (GP-4855, Issue #6794)-librarySearchPaths command line argument to the headless analyzer, which allows a semicolon-delimited list of library search paths to be specified. (GP-4564)yajsw to 13.12. (GP-4860)char8_t primitive type to PDB Universal analyzer. (GP-4822)addr="next" which allows for a large number of contiguous labels placed at an address based on the previous label without specifying the exact address of each label. (GP-4742)volatile attribute in tags. (GP-4849, Issue #6755)@runtime metadata comment to specify which GhidraScriptProvider is required to run them (e.g., Jython). This will allow different GhidraScriptProviders that use the same script file extension (e.g., .py) to coexist. (GP-4706)RecoverClassesFromRTTIScript heuristics for determining class constructors and destructors. (GP-4764)RecoverClassesFromRTTIScript virtual function definitions from using the formal signature (i.e., no this param) to using void *this param. This will improve the Decompiler output while continuing to not force a particular class structure on the generic definition's this param. (GP-4812)RecoverClassesFromRTTIScript now caches vfunction list in order to speed up processing. (GP-4863, Issue #6834)single jar mode. (GP-4844, Issue #6809)EnumDataType.getNames() method. (GP-4797, Issue #6765)StructureDB.delete(Set ordinals) and UnionDB.delete(Set ordinals) method implementations which failed to properly remove component records from database and update remaining components correctly. This method is used by the Structure and Union editors when removing components. (GP-4814)continue during another GDB command. (GP-4750, Issue #6678)info registers all or info registers general are invalid. (GP-4757)attach script for dbgeng (WinDbg). (GP-4784, Issue #6735)Attributes field from older versions of dbgmodel. (GP-4856, Issue #6825)DebuggerStaticMappingService to update properly on changes. (GP-4713, Issue #6662)StaticMappingService. (GP-4868)NullPointerException within GhidraHelpService when launching Ghidra. (GP-3490, Issue #6734)Tab key traversal. (GP-4716, Issue #5738)Tab key press while editing in the Enum Editor. (GP-4892, Issue #6873)IndexOutOfBoundsException that could occur when loading OMF binaries. (GP-4884, Issue #6862)pdb.exe processing component. Members that had a bit-field type or that had a namespace delimiter in the name were affected. (GP-4843, Issue #6788)PCLATH and RP0 code flow and data reference issues. (GP-4596, Issue #3239, #6466)ldaexd instruction semantics. (GP-4645, Issue #6526)sha1su0.32 instruction semantics. (GP-4646, Issue #6529)sha1su1.32 instruction semantics. (GP-4647, Issue #6530)CMOV semantics when destination and source overlap. (GP-4714, Issue #6523)sdivcc instruction. (GP-4747, Issue #6689)ext instruction not updating flags. (GP-4749, Issue #6679, #6690)SBB instruction. (GP-4754, Issue #6521)PEXTR instructions which write to memory. (GP-4769, Issue #6511)CMPPS instruction. (GP-4772, Issue #6512)VCVTTSx2Sx, VDIVSx, VINSTERT128, and VEXTRACT128. (GP-4776)PACKUSWB instruction. (GP-4777, Issue #6514)trunc(), to x86 CVTSD2SI instruction. (GP-4778, Issue #6513).sla file reference in PPC e500mc processor specification. (GP-4826)fmovem.l instruction using FPCR in place of FPIAR. (GP-4845, Issue #6810)NullPointerException when setting instruction length override for a non-fallthrough instruction. (GP-4775)RecoverClassesFromRTTIScript to make sure ClassHierarchyDescriptor symbols are in a non-Global namespace before trying to promote their namespace to a class namespace. If such symbols are found in the Global namespace it indicates potential issues with either the RTTI data or the processing of the RTTI data; in these cases, no class recovery will be done for the associated classes. (GP-4763, Issue #6704)NullPointerException in PropagateExternalParametersScript. (GP-4883, Issue #6841)Structure.setLength(int length) which allows the size of a non-packed structure to be set.LaunchConfigurator.configureLauncher() is changed such that arguments now requires ValStr<?> instead of just ? for its values. This affects both the new Trace-RMI launchers and the deprecated object-model launchers.insertBitFieldAt). (GP-4756)-0.0 within assembly Listing view. (GP-4759, Issue #6677).bat launchers for GDB and LLDB on Windows. (GP-4677)show version parse error. (GP-4698, Issue #6646)general is not recognized by GDB as a register group. (GP-4710, Issue #6635)R_X86_64_GOT64 and R_X86_64_PLTOFF64. (GP-4758, Issue #6691)__chain_starts section. (GP-4695)dbgeng launcher. (GP-4674)ClassCastException from String to PathIsFile) (GP-4690, Issue #6634)WildcardAssembler module and API for allowing the masking of operands. (GP-4287, Issue #6118)raw GDB and Python 3 connectors. (GP-4439)GFileSystem for Mach-O file sets (i.e., the kernelcache). (GP-3770, Issue #4827)Ctrl-F3/Shift-Ctrl-F3) and next/previous component provider (Ctrl-J/Shift-Ctrl-J). (GP-4227)Ctrl-3 will bring up the dialog. (GP-4267)BRK instruction is used throughout the code for exceptions. (GP-4364)get_pc_thunk_lr position-independent-code-related function. (GP-4474)DomainObjectListeners to express even-handling logic more concisely. (GP-4222)DomainObject java interface while eliminating separate UndoableDomainObject and Undoable java interface classes. Revised tool-based foreground Command-processing to defer event-flushing into a background task. Additional execute methods were added to PluginTool which allow lambda functions to be used in the place of a Command object. (GP-4390)support/launch.properties file for more detailed information on how these directories are determined and overridden. (GP-1164, Issue #908)ExtensionPoints when they are first requested. (GP-4515)TreeValueSortedMap for Java 21. (GP-3923, Issue #6083)support/buildNatives script. See the Installation Guide for more information on building native components. NOTE: bash is required to be installed in order for Ghidra to launch on FreeBSD. Additionally, the Debugger is not currently supported on FreeBSD. (GP-4235, Issue #6117)writable Mutability data setting to allow chosen data within a read-only memory block to deviate from the block setting. Decompiler was updated to respect this setting. (GP-4505)target remote. (GP-4437)Integer format, rather than always using base 10. (GP-4394, Issue #6019)FixOffcutInstructionScript that attempts to automatically fix an offcut instruction and its references in a restricted fashion. This script can be bound to a hotkey for a user to quickly attempt fixups throughout a program. Also, updated the set instruction length override action to automatically suggest a reasonable length, based on offcut flows, and to disassemble these flows if used. (GP-4034, Issue #5928)support/eclipse/. (GP-4233, Issue #5999)Ctrl-Shift-F1 in order for components to allow Ctrl-F1 to work for showing tooltips. (GP-4304)support/launch.properties file by uncommenting the VMARGS=-Ddisable.loader.logging=true line. (GP-4313)AbstractElfRelocationHandler implementation which uses ElfRelocationType enums specific to each handler. (GP-4239)PT_DYNAMIC restriction to allow it to be processed when not covered by a PT_LOAD. (GP-4291, Issue #5784)DYLD_CHAINED_PTR_ARM64E_KERNEL chained pointer fixups. (GP-4259, Issue #6144, #6145)dyld_shared_cache loader now implements pointer fixups for newer versions that use dyld_cache_slide_info5. (GP-4380)Artificial memory block flag intended to identify those blocks that the Debugger should not map into a running target. (GP-4125)LoadPdbTask to schedule EntryPointAnalyzer. (GP-4244)PdbUniversalAnalyzer to do work into multiple phases so that this work can benefit from work done in interim analyzers. (GP-4245)ZR (aka R0) register access for MCS-96 processor. (GP-4407, Issue #6181)__chkstk() found in windows AARCH64 binaries. (GP-4513)GhidraURLQueryTask and related GhidraURLQuery utlity class to failitate proper GhidraURL queries and to avoid replication of code. (GP-4447)this variable, which is a reference to its parent GhidraScript object. It may be necessary to refer to this in certain scenarios, such as when releasing the consumer of a Program object returned by askProgram(). (GP-4157)RecoverClassesFromRTTIScript's GCC class recovery to handle copy relocations. (GP-4396).sla) files are now stored in a compressed format to save disk space and shorten language load times. (GP-4285)MULTI_EQUAL pcode operation. (GP-7)tdb on Windows. (GP-4072, Issue #5994)case labels for some switches contained in an if block. (GP-4514, Issue #6128)NullPointerException in the ChkDominanceAlgorithm. (GP-4530)NullPointerExceptions in the SARIF handlers. (GP-4510)EOFException in the PeLoader that could occur when data directories point to section padding bytes. (GP-4496, Issue #6380).exports files not getting properly used in some scenarios. (GP-4628)MOVSX/MOVZX instructions. (GP-4629, Issue #6525)DebugData streams. (GP-4571, Issue #6464)movlb variant instruction form to processor module. (GP-3723)bany semantics and added simplifying cases for sext instruction. (GP-4254, Issue #6113)str instruction. (GP-4272, Issue #6156)FDIVP instruction. (GP-4381, Issue #6266)ldst instruction to properly support register writeback. (GP-4499)st.da instruction writing half-words instead of words. (GP-4552, Issue #6456)RCL and RCR instructions to set CF correctly. (GP-4576, Issue #6423)EditMemoryReferencePanel to enable inclusion of OTHER overlay spaces for address specification. (GP-4345, Issue #6245)GP and TP registers as separate registers. (GP-4479, Issue #3515)BTI C/CJ instruction at start of AARCH64 thunk functions. (GP-3917)externalGhidraExtension is present. This did not impact the current Public release since it does not include any such modules. (GP-4492)NullPointerException in the RecoverClassFromRTTIScript that happened for Windows programs when a class had a hierarchy at least four levels deep, with a single inheritance chain, and with the root being a virtual class. (GP-4459, Issue #6348)R_PPC_ADDR16_LO and R_PPC_ADDR16_HA to address FreeBSD conventions. (GP-4397)server.conf to facilitate specification of enabled TLS cipher suites. Enabled cipher suites have been constrained by default, consistent with RFC 9151. (GP-4330)RecoverClassesFromRTTIScript to not run if there are unhandled relocations in GCC programs for the necessary RTTI symbols. (GP-4371)listexes --limit option processing. (GP-4362, Issue #6246)UNKNOWN memory (fixed regression) and re-disassembles if PC lands offcut in an existing instruction. (GP-4278)SwitchOverride script. (GP-4314)IllegalArgumentException that occurred when trying to expand data over a selection in the Listing that spanned addresses from multiple address spaces. (GP-701)Cut operation when the tree is filtered. (GP-4373, Issue #6137)InvalidPathException that could occur when loading libraries during import. (GP-4326, Issue #5894)EOFException in the CoffLoader that could occur when parsing symbols. (GP-4344, Issue #6236)dyld_shared_cache loader no longer throws an exception when importing newer versions that use dyld_cache_slide_info5. (GP-4457)ldaxp, ldnp, ldp, ldpsw, ldxp). (GP-3851, Issue #5791)clr instruction not clearing the carry flag. (GP-3889, Issue #5838)INC instructions' setting of the carry flag. (GP-4273, Issue #2247, #2277)dextr instruction. (GP-4418, Issue #5756, #6303)lwax instruction. (GP-4419)MemoryAccessException in Version Tracking Data Correlator when data is partially contained in uninitialized memory. (GP-4339, Issue #6238)make-postgresql.sh script now uses the uname command instead of the arch command to increase system compatibility. (GP-4174, Issue #6051)IndexOutOfBoundsException when decompiling AARCH64 functions with empty structure parameters. (GP-4169, Issue #6047, #6068, #6120)bsim and bsim_ctl command line option specification to use the form --option value or --option=value instead of option=value. Also corrected some bugs associated with command processing. (GP-4173, Issue #6054)NullPointerException in TraceDisassembleCommand. (GP-4257)IndexOutOfBoundsException in the Decompiler Diff View panel when comparing functions. (GP-4253)R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX relocations. (GP-4228)*.o files with the reported error "GLOBAL_OFFSET_TABLE already allocated". (GP-4265)OptionalHeader.Magic value of 0. (GP-4215, Issue #6093)cr register used. (GP-3787, Issue #5246)call instructions referencing the PPAGE register. (GP-4104)MOVDIR64B instruction. (GP-4105, Issue #5997)csr77. (GP-4163, Issue #6033)CAN_MO registers. (GP-4204, Issue #5712)fbstp and fbld instructions. (GP-4249, Issue #2426)NullPointerException in Auto Version Tracking implied-match creation. (GP-4268)docs/GhidraClass/BSim/). (GP-4009)Indirect result location register for ARM64 calling conventions. (GP-3938, Issue #951)GhidraURL to the program. The GhidraURL points to the specific address at which the cursor is located within the program. (GP-3626)Target interface to abstract TraceRecorder and TraceRmi. (GP-2740)GFileSystem supporting the CaRT file format. (GP-3748, Issue #5568)GTree filter setting that allows users to filter on the node's path. (GP-2419)dyld_shared_cache components extracted from Ghidra's DyldCacheFileSystem can now be added together on-demand with the Add To Program feature. Broken references can be automatically resolved by right-clicking on them and clicking References -> Add To Program. (GP-3753, Issue #5023)ApplyFunctionSignatureCmd and FunctionUtility.updateFunction to optionally allow all applied composites to be cleaned (i.e., force to not-yet-defined state) before being applied. In addition, a datatype conflict handler may now be specified which can control how conflicts of applied datatypes should be handled. (GP-4051)Ctrl-F. (GP-4000)case values in the Decompiler window now support navigation and hovering and can be used to rename or retype the switch variable. (GP-3680, Issue #5286){ and }, in Decompiler output. (GP-3965, Issue #1240, #1937, #1938, #4914, #81)ANALYSIS instead of IMPORTED. (GP-4139)launch.properties). (GP-3623)dyld_shared_cache filesystem can now extract files for stubs and standalone data. (GP-3860)askValues() method to GhidraScripts which allows the script to show a dialog for entering multiple values with a single dialog. (GP-3924)AutoVersionTrackingScript to create implied matches if option is chosen by the user. (GP-3765)AutoVersionTracking algorithm to determine and apply good matches from the possible matches returned from the DuplicateFunctionMatchCorrelator. (GP-3854, Issue #5857)StackOverflowError encountered when processing self-referencing Golang slices. (GP-3906, Issue #5847)nodepJar task dependencies for Gradle 8. (GP-3977, Issue #5902)<unionfacetsymbol> does not have a union type" exception caused by deleting a union data-type. (GP-3942, Issue #5636)IOException when performing a Link Ghidra action on a Ghidra project whose original Ghidra installation moved. (GP-4063, Issue #5981)GTableHeaderRenderer to fix an incorrect cast to Component. (GP-3819, Issue #5539)Enter for a previous match. (GP-3856)JTextArea not responding to theme font changes. (GP-3908)Enter to close the dialog when the Category field is focused. (GP-4048, Issue #5962)IndexOutOfBoundsException that sometimes occurred while adding new entries to the Bundle Manager table or while opening a CodeBrowser tool that included an open Bundle Manager window. (GP-4075, Issue #5956)GFileSystem container files when a recursion depth of one or more is specified on the command line. (GP-3273, Issue #5167)DuplicateKeyException that could occur when using a Recursive Library Load Depth greater than 1, and removes any ambiguity that could occur when linking a program to its libraries. (GP-3922)InvalidPathException that could occur when loading libraries during import. (GP-4050, Issue #5894)MachoLoader now creates thunks on stubs. (GP-3248, Issue #3146)di and ei instructions. (GP-3875)alloca_probe x64 windows callfixup. (GP-3915, Issue #5844)ST and MM registers to achieve proper overlap. The upper 16-bits of the ST registers still remain unaffected by MMX instructions which write to the MM registers. (GP-3956)NullPointerException in Ghidra Server command proceesor. (GP-4056, Issue #5974)FINTRZ instruction. (GP-3387, Issue #5205)POP instructions with operands that use the stack pointer. (GP-3677, Issue #4282)cbz instruction in the manual index file. (GP-3724)STU instruction storing the X register instead of the U register. (GP-3786, Issue #5671)TEQ zero, zero into a trap, always-goto flow. (GP-3948)MXCSR to the compiler global list so that manipulations persist in the decompiled output. (GP-4018)DOEND register offset (GP-4054, Issue #5213)DES instruction semantics. (GP-4055, Issue #5235)ProjectLocator when using projects located in root directory. (GP-3914, Issue #5802)FixOldSTVariableStorageScript.java Ghidra script has been made available for users to run against x86 Programs created prior to Ghidra 10.0.3. This script will fixup ST0... ST7 variable storage addresses which were not properly migrated during an x86 language revision. (GP-3949, Issue #5640)GenericByteSequencePattern. (GP-4024)LOCK prefix byte. (GP-3256)buildHelp gradle task to correctly check for up-to-date inputs. (GP-3430)ghidra:// URLs. No more "!" in them. (GP-3695)TraceFunction part of the Trace API. (GP-3351)this parameter refers to a placeholder class structure. (GP-3590, Issue #5403, #5475)callfixup for __RTC_CheckEsp in x86win.cspec and updated GraphASTScript.java. (GP-3752, Issue #5657)dyld_shared_cache filesystem now have chained fixups applied. (GP-1574)dyld_shared_cache filesystem now contain an optimized __LINKEDIT segment, resulting in a significantly smaller binary. (GP-3587, Issue #4175)dyld_shared_cache filesystem now contain local symbol information, which reduces the occurrence of <redacted> primary symbols. (GP-3728)R_AARCH64_MOVW_UABS_Gn relocations. (GP-3435, Issue #3545, #3546, #5292)DyldCacheLoader so its performance can be better controlled by the user. (GP-3566)MachoLoader now supports threaded binding (BIND_OPCODE_THREADED). (GP-3701, Issue #5558)LOAD ops preventing certain decompiler transformations. (GP-3822, Issue #5433)RecoverClassesFromRTTIScript to improve class structure creation for GCC programs. (GP-3464, Issue #5642)RecoverClassesFromRTTIScript to make sure all class thiscall functions are using the class structure created by the script. (GP-3777)_fxsave and _fxsave64 with defined p-code ops in ia.sinc. (GP-3733, Issue #5208)&& to get added to function pointers. (GP-3650)build directory within the project. This build directory now gets automatically cleaned up to avoid Ghidra runtime/debugging issues. (GP-3523, Issue #5327)Name attribute to a label attribute, which is what DOT graphs use for display. Also, cleaned up vertex label display when in compact mode and added the vertex id in the tooltip. (GP-3779, Issue #5678)Module-definition (.def) files. Several parsing bugs with this file format were also fixed. (GP-3826, Issue #5676)R_RISCV_RVC_BRANCH relocation processing. (GP-3792, Issue #5701)^A) instead of discarding symbol with an error. Import log will report use of modified name when this occurs. (GP-3793, Issue #5619)e_sthu instruction. (GP-3434, Issue #5247)GhidraScript.askProgram to always require proper use of Program.release(Object consumer) by scripts which use it. Script's failure to release a program will prevent proper resource disposal. (GP-3697)ShowConstUse script back-tracking through MultiEqual pcode operations to handle multiple inputs to the same location. (GP-3503, Issue #5242)findBytes() to honor the search limit when used regular expressions. (GP-3797, Issue #5672)constant syntax highlighting. (GP-3679, Issue #5059)mips:3000 to the mips.ldefs specification file in support of 32-bit MIPS processor (default variant). (GP-3453, Issue #5337)CALL <nextaddr>; POP EBX position-independent code issue that was replacing the branch with a data reference which caused bad code flow. (GP-3687)MODULE_[UN]LOADED events (these duplicate elementsChanged on the Modules node). Fixed NullPointerException log messages from library-load events in GDB connector. (GP-3666)(RSP+8)+8. (GP-3720)Tab to navigate while editing. (GP-3647, Issue #5566)analyzeHeadless in parallel. (GP-3653)vcvt instruction semantics. (GP-3729)LDS/STS instructions from AVR8 in preparation for AVRtiny support. (GP-3746, Issue #5231)pshu sometimes pushing to the S register. (GP-3556, Issue #5467)fcadd and fcmla instructions. (GP-3652, Issue #5428)LIDT, LGDT, SIDT, and SGDT instructions. (GP-3655, Issue #5577)__chain_starts section. (GP-3568)askPassword method to GhidraScript API. (GP-3295)CreateFunctionCmd issue which could fail with the "Function body must contain the entrypoint" error. (GP-3591, Issue #5412)pragma keyword in more places, allow parentheses in #pragma, and fixed silent parse failures. (GP-2808, Issue #4692, #5454)#pragma directives. (GP-3611, Issue #5524)NullPointerException when varnode has no high variable during stack unwinding. (GP-3576, Issue #5487)R_X86_64_GOTPCREL). (GP-3610, Issue #5519)DYLD_CHAINED_PTR_64_KERNEL_CACHE fixups. (GP-3598).exports files to not get matched and applied in some circumstances. (GP-3552, Issue #5351)ExceptionDataDirectory no longer prevents the import from finishing. (GP-3584, Issue #5483, #5496)vdup instruction, which was using the wrong bits for register value. (GP-3524, Issue #5420)leax and leay instructions to update zero flag. (GP-3525, Issue #5414)DYLIB extracted from a dyld_shared_cache. (GP-3526)__stdcall calling convention as an alias to the default calling convention for aarch64 and x86-64. (GP-3472)RecoverClassesFromRTTIScript recognition of special vtables when they are in memory blocks not tied to imported file bytes. (GP-3463)RecoverClassesFromRTTIScript issue where mangled typeinfo names were not always getting extracted from memory when more than one bad data type was created over the memory containing the mangled string. (GP-3467)pragma lines when a comma is found outside of parentheses. (GP-3541, Issue #5427)00000000 values in module ranges. (GP-3448, Issue #4456, #5357)return in termmines.c exercise file. (GP-3444, Issue #5343)MzLoader tried to split the HEADER overlay block. (GP-3447, Issue #5320)ELF PT_NOTE program header. (GP-3493, Issue #5384)sleb128 data type. (GP-3543)DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE fixups. (GP-3474)AddressOutOfBoundsException that could sometimes occur when importing the exports section of dyld_shared_cache files. (GP-3505, Issue #5392)IllegalStateException that could occur if both Load Local Libraries From Disk and Load System Libraries From Disk options are used during import and the same library is found in both local and system directories. (GP-3445).exports files to always get deleted after import. (GP-3519, Issue #5348)pea instruction with address based on SP. (GP-2955, Issue #4795)TSX instruction. (GP-2963, Issue #4838)movp, movp3, and jmpp instructions and correcting the implementation of the memory bank selection. (GP-3009, Issue #2423, #4825)popf and pushf instructions. (GP-3102, Issue #4980)e_stmvsprw instruction. (GP-3325, Issue #4886)eieio decode for all valid variants. (GP-3432, Issue #4887)mla instruction using erroneous registers. (GP-3478).cspec file for the optional Register ABI calling convention for ColdFire. Also added bonus function start patterns identified during testing. (GP-3532, Issue #5390)2 to n arguments in CPOOL Sleigh operator. (GP-3534, Issue #2148)lzcount has been introduced into SLEIGH, the Decompiler, emulation, etc. It returns the count of leading zero bits in its operand. (GP-3155, Issue #2810)AssociateExternalPELibrariesScript that associates imported library files for PE programs in order to fix up external references from the program to the libraries. This is useful for users who forgot to load the libraries on program import and want to fix up the references after the fact. (GP-3098)__security_push_cookie to fix poor Decompiler and stack reference results. (GP-3124, Issue #5018)FunctionDefinition and FunctionSignature to use calling convention names as strings instead of being limited to GenericCallingConvention. Also added noreturn support to these interfaces. (GP-2308, Issue #3267, #4537)TaskMonitor to address spelling inconsistencies. (GP-2982, Issue #4870)SymbolTable.scanSymbolsByName(String startName). This has been utilized by the assembler UI to resolve a hang on large programs. (GP-3015, Issue #2630)-D defines related to wchar_t from CParser prf files and GDT parsing scripts. (GP-3294, Issue #5196)Shift-H keybinding action for toggling hex/decimal view. (GP-2943)DataTypeParser to handle type names which include the :: namespace delimiter. (GP-3003, Issue #4841)refresh option from boolean to RefreshBehavior enum to allow opportunistic use of caches. (GP-3142)TargetObject.add/removeListener() in favor of DebuggerObjectModel.add/removeModelListener(). (GP-2752)PC (or other tracked location) is not located in the listing. (GP-2750)Range<T> with Lifespan, ULongSpan, KeySpan, FieldSpan, etc. (GP-1543)DecompilerStackProblemsFinderScript, which searches the decompiled code for certain local variables that can be indicators of stack analysis issues. (GP-2697)xchg ax,ax back to nop. (GP-3372)WRAPPER_TMPDIR variable in ghidraSvr(.bat). (GP-3053, Issue #4925)bl lr and blx lr pseudo-instructions. (GP-2872, Issue #4320)PrototypeModel.getReturnAddress() now returns the default return address of the compiler spec when a prototype does not define its own. (GP-2612, Issue #4611)RecoverClassesFromRTTIScript has been updated to recognize and process Windows PE programs compiled with GCC (i.e., MinGW, Cygwin programs). (GP-1856)RecoverClassesFromRTTIScript has a few improvements for GCC-compiled programs. (GP-2679, Issue #4414)RTTI Found RTTI Analyzer option to the program information, which is used to determine whether to rerun the analyzer and also to decide whether to run the RTTI script. (GP-3293)ApplyFunctionSignatureCmd to allow use where function should not get renamed when signature applied. (GP-3350)wdm.h header file with multi-line strings passed as arguments to a macro. (GP-2809, Issue #4690)CParser.parse(String) method no longer throws an exception, and, when parsing a structure as a string, the return type will be the structure--not the last member of the structure. (GP-3183, Issue #4903)wchar_t as a keyword when parsing header files. wchar_t will always use the built-in wchar_t datatype even if defined with a typedef within a header file. (GP-3215, Issue #5108)#define enum values if unsigned long is specified with parentheses around the value; for example, #define X (4ul). (GP-3216, Issue #5069)#define expressions ending in ULL, LLU, LL, and LU are found in parentheses. (GP-3285, Issue #5161)#define statements embedded in #include files and parsing of constants with UL/LL size specifications. (GP-3310, Issue #5207)Enum sizes are now set to the size of an int for the processor (formerly 4), and enums from #defines are set to the the smallest enum size that will fit the number (formerly 8). Future change will add packed enum sizes. (GP-3385)DataType.getAlignedLength() method which was needed to differentiate between the raw encoding size and the aligned (i.e., padded) size used by a compiler when allocating storage (i.e., sizeof). Example: for x86-32 gcc, 80-bit float has an aligned-length of 12-bytes which reflects compiler's sizeof(long double). (GP-1379)no-dep jars. (GP-1007, Issue #3076)NullPointerException in GadpValueUtils. (GP-2915, Issue #4791)RequireHasKnownTraceCachedWriteBytesPcodeExecutorState, RequireHasKnownTraceCachedWriteBytesPcodeExecutorStatePiece, RequireIsKnownTraceCachedWriteBytesPcodeExecutorState, and RequireIsKnownTraceCachedWriteBytesPcodeExecutorStatePiece. (GP-3280)PC marker in the Static Listing. (GP-2991)NullPointerException. (GP-3213)wchar_t, wchar16, and wchar32 primitives in Demanglers. (GP-3184, Issue #5080)ProgramTextWriter, which affected HTML/ASCII exports. (GP-1868, Issue #793)IllegalStateException that occurred while refreshing the Bundle Manager after the Code Browser tool had been closed. (GP-2711, Issue #4656)F2 to start an edit. (GP-366)TableChooserDialog. (GP-2996, Issue #4880)Executable Location property when the program was imported headlessly from a relative path. (GP-3054)HALT instruction to the Coldfire processor. (GP-3326, Issue #5194)__unnamed anonymous data types with different definitions used within a common structure. These could be emitted by VS 2005. (GP-3279)FDESI, FENI, FNDESI, and FNENI instructions. (GP-2093, Issue #4262)fsrra, fsca, and movua.l instructions. (GP-2374, Issue #4210)DSP instructions. (GP-2775, Issue #4526)abcd and sbcd instructions. (GP-2880, Issue #4183, #4189)pause instruction. (GP-2892)nor.t instruction. (GP-2895, Issue #4775)fsel instruction. (GP-2937, Issue #4664)TRB and TSB instructions. (GP-3039, Issue #4921)vld and vst instructions. (GP-3043, Issue #4814)MOV REX, MOFFS64 disassembly with address size prefix. (GP-3078, Issue #4942)FBLD instruction semantics. (GP-3079, Issue #2427)VMOV.U16 instruction decode. (GP-3096)push {register_list} not disassembling when the last two registers in the list are r2 and r3. (GP-3132, Issue #5024)MSR instruction. (GP-3156)vqdmull instruction not disassembling. (GP-3157, Issue #5053)TSTA instruction not clearing carry flag. (GP-3169, Issue #5067)jal/jalr instructions to be a call instead of goto, when link register is T0. (GP-3217, Issue #5092)LR register. (GP-3341, Issue #5218).ghidra directory. (GP-2936)FlatProgramAPI.getLastInstruction(). (GP-3198, Issue #5090)GhidraScript.openProgram() was called. (GP-3321, Issue #5215)ReferenceUtils when searching for structure members with no size. (GP-3283)eval usage from launch.sh. (GP-2987, Issue #4869, #4872)volatile and size attributes to individual default_symbols/symbol elements in pspec files. Symbols with these volatile and size attributes are treated as volatile by the Decompiler. (GP-2606)totalbits and postbits were set such that no patterns would ever match. Call instructions split into call/jump based on return addressing saving in RA. (GP-2878)tbb [pc, rm] instruction. (GP-2946, Issue #4824)Symbols... assigned to the same variable exceptions. (GP-2859)unknown stack purge. (GP-3065)Expecting unsigned integer attribute exceptions when decompiling for architectures with a word size greater than 1 byte. (GP-3088)__thiscall. (GP-2904)mtmsr instruction. (GP-2245)adc instruction. (GP-2882, Issue #4553)VEX prefix colliding with the LDS instruction. (GP-2959, Issue #4832)SHUFPS and PSHUFD instructions in ia.sinc. (GP-3023, Issue #4868)ldr instructions disassembling as incorrect variants. (GP-3083, Issue #4959)getSelectedDatatypes() method to DataTypeManagerService to get a list of selected data types in the data type tree. (GP-1631)read, write, open, close, exit, and exit_group syscalls to the emulation API. (GP-1208)EmuDeskCheckScript to emulate and produce a table of expression values for each step. (GP-2289)CTokenHighlightMatcher and pass it to the createHighlighter() method of the highlighter service. There is no limit to the number of highlighters that may be installed, and if multiple highlights overlap, their colors will blend. (GP-1435, Issue #2313)pop to the PC as a return in ARM binaries. (GP-634)BL for long jumps in Thumb mode. (GP-2534, Issue #4573, #678)Function.getFunctionThunkAddresses() method. (GP-1692)AddressMap interface which are intended for internal use only. (GP-2002)DataType.clone(DatatypeManager) method implementations for StructureDB, UnionDB, FunctionDefinitionDB, and EnumDB to adhere to method documentation which states that a datatype will return the instance itself if its DataTypeManager is the same as the parameter specified. (GP-2236)_guard_dispatch_icall and other functions that inject an indirect call into the Decompiler. (GP-2601, Issue #1719, #4591)/Demangler/!_anon_funcs_ category using a revised naming convention consistent with PDB with a _func_ name prefix. Changed DWARF to use this same anonymous function definition name prefix. (GP-2557)file(n) search string, and a new File Offset field has been added to the Listing (disabled by default). (GP-1756)TableChooserExecutor.executeInBulk() method to allow script writers to process multiple selected table rows themselves instead of one at a time. (GP-2583, Issue #4609)0x. (GP-2622, Issue #4623)method_lookup sections using external references. The APK loader uses the manifest file to determine the Android version. (GP-275, Issue #4276).gnu_debugdata section. (GP-1592, Issue #1659)(e_phnum, e_shnum) which may be encountered for large core/memory dump files in ELF format. (GP-1936, Issue #4149)_tls_index. (GP-2166, Issue #4285)-admin option while adding -grant and -revoke options. (GP-394, Issue #1703, #2467)svrAdmin(.bat) script will now run under a JRE in addition to a JDK. (GP-2301, Issue #4394)Edit Shared Project Information capability which now handles case where user may have checked-out files and is unable to checkin or terminate them when unable to connect to old server (e.g., server name or IP address has changed). (GP-2496)unknown calling convention when a custom calling convention is indicated and noreturn when indicated for a function. Also added initial support for some MIPS and IA64 processors called out in PDB. (GP-2505)POPCNT instruction. (GP-1780)bitrev, byterev, and ff1 instructions. (GP-2195, Issue #4270)inst_next2, which can be used to implement conditional skip-next-instruction cases in the language spec. (GP-2480)mips-eabi compiler specification. (GP-2734, Issue #3633, #3634)Pointer-Typedef with Offset setting to signal creation of an OffsetReference. Modified ELF relocation handler to create such pointers for certain relocation types known to be associated which offset-data pointers. Improved Listing operand markup for rendering of OffsetReferences. Took special measures for such data references into the EXTERNAL memory block to remedy XRef and navigation issues. (GP-1036)CALLOTHER_OVERRIDE_CALL references now cause the inputs of the original CALLOTHER op to be discarded. (GP-2206, Issue #3665, #3936)RunYARAFromGhidra.py to include .yara files. (GP-1794)RecoverClassesFromRTTIScript has been updated to make use of the new shifted pointer data types where applicable. (GP-1947)RecoverClassesFromRTTIScript to prevent it from running more than once on the same program. (GP-1962)FixElfExternalOffsetDataRelocationScript to be used in updating EXTERNAL offset data relocations flagged by an ELF Relocation ERROR bookmark. These locations now support the use of an offset pointer-typedef and a resulting offset-reference. (GP-1963)RecoverClassesFromRTTIScript has been updated to make use of the new program setting allowing use of a preferred data type category for class structure assignment. Due to this change, there is no longer any need to remove existing class structures in order to use those created by this script, so all code related to replacing, other class structures, has been removed. (GP-2010)CallotherCensusScript, which determines the most frequent instructions with (partially) unimplemented semantics in a single program or across an entire repository. (GP-2072)RecoverClassesFromRTTIScript to distinguish between and name deleting destructors as either scalar or vector ones or both in Windows programs. (GP-2075)createNamespace and createClass methods to FlatProgramAPI for Ghidra script use. (GP-2482, Issue #4446)static_assert keyword in more places, such as within structure definitions. (GP-2273, Issue #4401)#pragma keyword in more places such as within enum declarations. (GP-2646, Issue #4628)#pragma found in function calls. (GP-2746, Issue #2896, #4660, #4676, #4677)Emulate read from uninitialized state warnings when P-Code Stepper window is active. (GP-1650)info proc mappings fails on 32-bit and smaller targets. (GP-2241, Issue #4345)Bad storage node error when using the Split Out As New Variable action on register pairs. (GP-2027, Issue #4186)hash has changed IOException that would sometimes occur when extracting .dylib files from a dyld_shared_cache file system. (GP-1986, Issue #4208)My Computer. (GP-1635)Maximum setlocal recursion level reached when a large number of command line arguments were specified. (GP-1735)'*' path expansion not working properly when calling headless from Linux/macOS. (GP-2209, Issue #3409, #4500)program.getName() and the storage name can be retrieved using program.getDomainFile().getName(). (GP-1876)-applyArmElfRelocPCBias import option for relative relocation processing to account for differences in how tool-chains factor in the bias value. (GP-2041)R_ARM_JUMP24, R_ARM_CALL and R_ARM_PLT32. (GP-2350, Issue #4455).plt.got markup error which could prevent import. (GP-2592, Issue #4602)R_MIPS_REL32 and R_MIPS_32. (GP-2678, Issue #4633)DT_GNU_XHASH symbol hash table. (GP-2749, Issue #4649)PE Property[propertyname] instead of just bare propertyname when inserting the information into the program info list. (GP-2343, Issue #4452)IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS are now supported. (GP-2453, Issue #4502)R_PPC_EMB_SDA21 relocation and implemented lq instruction pcode. (GP-713, Issue #890)abs instruction using the floating-point abs pcode operator. (GP-1165)vcvt instruction. (GP-1503, Issue #3418)jl instruction semantics. (GP-1638, Issue #3552)addx instruction. (GP-1644, Issue #3818)FST instruction. (GP-1694, Issue #3894, #3895)vsub instruction. (GP-1712, Issue #3943, #3944)ffreep instruction. (GP-1722, Issue #3883)vraddhn disassembly. (GP-1736, Issue #3978)st.t instruction semantics. (GP-1746, Issue #2326)endif statement. (GP-1762, Issue #4029)bfi instruction. (GP-1763, Issue #4011)fmod caused by manual typo. (GP-1946, Issue #4131)pack and unpk instructions. (GP-2014, Issue #4223)PLP instruction. (GP-2092, Issue #4249)tpf instruction to not consume trailing bytes, which may be valid instructions. (GP-2104)RPT instruction to use correct operand types. (GP-2112)trapa instruction to properly dereference the vector address. (GP-2344, Issue #4396, #4477)W register to R25R24. (GP-2499, Issue #4516)ldrht, ldrsbt, ldrsht, and strht not disassembling. (GP-2536, Issue #4582)MAFCR0 and MAFPA2L. (GP-2538, Issue #4592)BIC instruction. (GP-2696)JMP instruction. (GP-2701, Issue #783)setReusePreviousChoices(boolean) method to allow script writers to not reuse the last-entered values in the various ask dialogs. (GP-1743, Issue #3937)bitrange operator applied to a dynamic symbol. (GP-1583, Issue #3716)RETF to return. (GP-2103, Issue #4293)_Noreturn keyword. (GP-2275, Issue #4273)default. (GP-2082, Issue #4268)SHT_NOBITS section with invalid file offsets. (GP-2098, Issue #4095)SHN_ABS). (GP-2330)static_assert and _Static_assert keywords. (GP-1958, Issue #4038)sizeof structure members, both sizeof(ptr->member) and sizeof(struct.member). (GP-1964, Issue #4173)getActiveGraphDisplay() API method to GraphDisplayProvider to get the active graph. (GP-1804, Issue #4060)*:4 EAX syntax. (GP-1820)R_ARM_THM_JUMP8, R_ARM_THM_JUMP11, R_ARM_THM_MOVW_ABS_NC, R_ARM_THM_MOVT_ABS, R_ARM_THM_MOVW_PREL_NC, R_ARM_THM_MOVT_PREL, R_ARM_THM_MOVW_BREL_NC, R_ARM_THM_MOVW_BREL, R_ARM_THM_MOVT_BREL). (GP-1742, Issue #2794)X0, X1. (GP-1739)pragma(push), re-included header files, #if/defined() tests on define values, unicode BOM files, and full evaluation of macro expansion. Added more information to the CParserPlugin.out file prefixed with /// comments which should enable easier diagnosis of parsing issues. Reparsed current standard data archives with correct 64/32 data organizations. Fixed issue where many data types had incorrect pack() values in Windows archives, such as WNDCLASSEXW. To make use of the corrected data types, programs data types will need to be re-synchronized if they depend on the included Windows or clib data type archives. Windows VS2022 and Windows 11 SDK header files can now parse and will be included in the next feature release. (GP-1744, Issue #3756)Program ... has different compiler spec... exception when populating FID signatures. (GP-1839, Issue #4042)\\location\path). (GP-1696, Issue #3912)LO16 value, extracted as an addend from the instruction, was not sign-extended. (GP-1834)BL conditional call instruction, which calls to the next instruction, has been changed to a branch instead of a call. Calling the next instruction on ARM is generally only to get the LR register loaded for PIC code. (GP-1752)rdhwr instruction to use correct hardware registers. (GP-1879)typeinfo structures in non-executable memory. (GP-1686)gradle buildGhidra issue where a second build doesn't include all the files. This issue appears to be a bug introduced in Gradle 7. (GP-1648, Issue #3827)unsigned_short. (GP-1662).pdata section from memory. (GP-1636, Issue #3347, #3800, #3805)unsupported PDB data type messages in the log. (GP-1677)efscmp* and efstst* instructions condition register usage. (GP-1639, Issue #2528)JUMP and JSR for the 6809 to use [target] instead of jumping directly to target which incorrectly jumped to the address of the unique variable. Also fixed a compile issue in the half-finished 6309 EXG and TFR instructions. (GP-1690, Issue #3825)encodeValue and encodeRepresentation methods which facilitate patching. (GP-1265)else if syntax in Decompiler output. (GP-1172, Issue #1609)___chkstk_ms() function is now properly recognized and handled with a call fixup for windows x86-64. (GP-1347, Issue #1888, #1889)=cmd-param-changed events. (GP-1330)NullPointerExceptions among the Debugger Stack and Threads windows. (GP-1475)longMode bit to x64 language spec for mixed 32-/64-bit use cases; e.g., WoW64. (GP-1255)swap instruction semantics for PIC-24,30,33 processors. (GP-1565, Issue #3670)REP prefix for x86 instructions. (GP-1294, Issue #731)DW_EH_PE_absptr that are not relocated correctly when the binary is loaded in an alternate image base. (GP-1575)JIC instruction. (GP-938, Issue #3022)adcs and sbcs carry and overflow flag updates. (GP-1043)bit instruction semantics. (GP-1115, Issue #2558, #3095)moveml.l instruction which caused a load instead of store register. (GP-1263, Issue #3379)INS instruction. (GP-1290, Issue #3405)DINS instruction semantics. (GP-1291, Issue #2232)vmrs instruction disassembly. (GP-1322, Issue #3446)bld and movemu instruction semantics. (GP-1331, Issue #3449)call instructions when stack pointer is used as a reference. (GP-1357, Issue #3455)tlbr instruction. (GP-1363, Issue #3463)it to allow the al (always) conditional. (GP-1402, Issue #3499)sb from ARM ldrsb instruction. (GP-1412, Issue #3522)CHK, CHK2, and CMP2 instructions. (GP-1478, Issue #2856, #3616)trapa instruction to use a call p-code op instead of a goto. (GP-1504, Issue #3600)RDRAND and RDSEED. (GP-1564)RefType change. (GP-1392)#if statements. Operator precedence has been corrected and support for additional operators added for constant simplification that is used to specify array sizes during parse. In addition, C17 structure initialization syntax and multiple type casts are now parsed. (GP-1295, Issue #1652, #2665, #2666, #3410)Missing userop attribute in segmentop tag error message in the Decompiler for Z80 executables. (GP-1305, Issue #3329)Alignment. (GP-1327, Issue #3399)launch.properties and Ghidra Server use via server.conf. (GP-1287)--illegal-access=permit JVM argument for improved JDK 17 runtime support. The Ghidra Server continues to require JDK 11 to successfully run at this time. (GP-1193, Issue #3355)R_AARCH64_LDST64_ABS_LO12_NC. (GP-1278, Issue #3352)FXSAVE and related instructions. (GP-1228)Missing Instruction Prototype exception in favor of using InvalidPrototype. (GP-1226)Exceeded maximum restarts with more pending warnings in the Decompiler. (GP-1277, Issue #3104)SBC instruction. (GP-1109, Issue #3189, #3190)Offset must be between... AddressOutOfBoundsException, when decompiling real-mode x86 programs. (GP-1163, Issue #239, #2948)fmov.s pcode. (GP-1152)vld1/vst1 vector instructions have been corrected. (GP-1167)Overriding symbol with different type size exceptions. (GP-1041)__file__ attribute support in Jython scripts. (GP-1099, Issue #3181)ResolveX86orX64LinuxSyscallsScript now properly marks non-returning syscalls. (GP-868, Issue #2761)Datatype.isDynamicallySized() to DataType.hasLanguageDependantLength() to avoid confusion. This method is used internally to differentiate between fixed-length types and those whose length is determined by the compiler specification's data organization (e.g., pointers). (GP-932)gradle -I gradle/support/fetchDependencies.gradle init now downloads the Function ID datasets from the ghidra-data GitHub repository so they will be automatically included in development mode and custom builds. (GP-678, Issue #1007)gradle clean no longer deletes downloaded dependencies. The top-level flatRepo directory has been replaced with the dependencies directory. (GP-811, Issue #1663).note.gnu.build-id and .gnu_debuglink sections. (GP-468).pdata section of PE files that include exception handling data. (GP-729)WREG register aliases for PIC24 processor variants. (GP-901, Issue #2956)PPAGE register not being properly restored after CALL instructions in the HCS12 processor. (GP-920, Issue #1099)IDX1 addressing with negative immediate values. (GP-937, Issue #3008)gradle prepDev when the Ghidra repository is on a different drive than the user's home directory on Windows OS. (GP-970, Issue #3047, #3062)longlong values for MIPS 32-bit little endian variants. (GP-513)Redefinition of structure... exceptions in the Decompiler caused by a PNG Image and other opaque datatypes. (GP-820, Issue #2734)Shared type id exceptions. (GP-895, Issue #2909)closed for edit state. (GP-998)RCALL). (GP-906).textbss section. (GP-397, Issue #2496)db.Record class to db.DBRecord to avoid naming conflict with java.lang.Record class and potential import issues. (GP-193)this_call to have the correct this pointer parameter. Symbol table queries based upon name and/or namespace will always exclude default thunk functions. (GP-17)VMRS instruction parsing in thumb. (GP-735, Issue #2750)MOVUPS instruction. (GP-744, Issue #2789)div1 instruction. Corrected several SuperH instructions to set flags properly around the delay slot. (GP-753, Issue #2863, #2864)MCR instruction. (GP-761, Issue #2451)INSx.rep and OUTSx.rep pcode ordering. (GP-766, Issue #2829)TBLPAG and PSVPAG registers. (GP-798, Issue #2844, #2855)MODR/M opcode bytes in x86. (GP-800, Issue #2504)XRA HL instruction. (GP-818, Issue #2447)rex.w prefix for x86 conditional jump instructions. (GP-837, Issue #1163)CALLW, ASRF, LSLF, and LSRF instructions to PIC16 language. (GP-841, Issue #1362)s to the instruction mnemonic. (GP-881)wr instruction for SPARC which in some cases did not write to the appropriate ASR register. (GP-928)CALL and RET instructions with 0x67 prefix pushing/popping the wrong address size from the stack. (GP-954, Issue #2976)RDMSR instruction. (GP-982, Issue #3046)e_li instruction. (GP-1060)AnalysisMode.DISABLED in use caused the dialog to be closed. (GP-1018, Issue #3103).NEP section and relaxed the requirement that the code must have a return. (GP-649)R_X86_64_IRELATIVE. (GP-651, Issue #1189)Function.getCalledFunctions(TaskMonitor) and Function.getCallingFunctions(TaskMonitor) now support passing null for the task monitor parameter, which previously would have thrown an exception. (GP-589, Issue #2643)// comment indicators. (GP-473)void to Undefined, allowing the Decompiler to determine the type. (GP-790).got section. (GP-360, Issue #2416)R_ARM_MOVW_ABS_NC and R_ARM_MOVT_ABS ELF Relocations for ARM. (GP-555, Issue #2510).init_array and .fini_array which was incorrectly overadjusting entries for an image base change. (GP-699)LC_BUILD_VERSION tool entries. (GP-702, Issue #2192)void to Undefined, allowing the Decompiler to determine the type. (GP-791)RFE instruction in MIPS up to version R3000. (GP-33, Issue #1766)VMUL now decodes correctly. (GP-627, Issue #2677)CFINV instruction to AARCH64 processor specification and added definitions for locals in neon instructions. (GP-655, Issue #2710)-scriptPath option that didn't work for Python and other non-Java scripts located in non-default directories. (GP-528, Issue #2561)-scriptPath option to correctly parse $GHIDRA_HOME and $USER_HOME. (GP-781)JMP instruction has been corrected not to use the PC in the address calculation. (GP-548, Issue #2570)type_info vftable when it cannot be found with its mangled name. This will enable many more Windows programs to have their RTTI structures created that were unable to be parsed in previous Ghidra versions. (GP-141)gradle Decompiler:generateParsers task, which still requires bison and flex, must be used, explicitly, when changes are made to lex/yacc source files. (GP-467)0x1608 and 0x1609 with presumed class and struct types and follow-on application of these types. Also fixed up some fall-back data type logic and improved some warning messages to reflect the cause of the conditions. (GP-474, Issue #2523)getInt, getShort, getLong, and getBigInteger have been fixed when allocated at a non-zero offset, wrapping another MemBuffer such as DumbMemBufferImpl. (GP-486)longlong and double return values. Endianness ordering of r0/r1 was incorrect. (GP-512, Issue #2547)Integer.MAX_VALUE (2147483647). (GT-3607)priority annotation so users can control extension point ordering. (GT-3350, Issue #1260)isThisPointer() and isHiddenReturn() are now populated in HighSymbol objects and are accessible in Ghidra scripts. (GP-239, Issue #2151)char8_t, char16_t, and char32_t. (GP-14)XREF field in the Listing. See the Show Xrefs action in the Tool Options... Key Bindings section. (GT-3446)DUMPBIN /EXPORTS (see Ghidra/Features/Base/data/symbols/README.txt). (GT-3235)unique space are now always shown with the size of the access. Fixed bug which would cause the PCode emulator to reject valid pcode in rare instances. (GP-196)-a0 mode only) for the svrAdmin add and reset commands. (GT-3640, Issue #321)vstmia/db vldmia/db, added missing instructions, and fixed shift value for several instructions for the ARM/Thumb NEON instruction set. (GT-2567)SALC instruction. (GT-3367, Issue #1303)BRK instruction. (GT-3375, Issue #1049)PTEST instruction. (GT-3380, Issue #1295)RDRAND and RDSEED instructions to x86-32. (GT-3413)resetContextOnUpgrade. (GT-3531)get_pc_thunk.ax/si. (GP-10)ExitProcess to PEFunctionsThatDoNotReturn. (GP-35)goto instead of call. (GP-54, Issue #2120)isEquivalent() method to properly check the equivalence of the base data type. The old implementation could cause a pointer to be replaced by a conflicting pointer with the same name whose base datatype is not equivalent. This change has a negative performance impact associated with it and can cause additional conflict datatypes due to the rigid datatype relationships. (GT-3557)long for AARCH64 per LP64 standard. (GP-175)Deleting op with descendants exception. (GT-3506)PTRSUB off of non-pointer type exceptions. (GP-244, Issue #1826)forcing if it wasn't already. A retyping action, although it is forcing, won't trigger alias blocking for atomic data-types (this is configurable). (GP-248, Issue #524, #873)Pcode: XML comms: Missing symref attribute in <high> tag. (GP-352, Issue #2360)operator symbols. (GT-3474, Issue #1441, #1448)unnamed type syntax. (GT-3645)getNamespaceString() on DemangledVariable. (GT-3646, Issue #1729)typeinfo string containing operator text. (GP-160, Issue #1870, #2267)iso9660 image files. (GT-3451, Issue #1403)UndefinedFunction_ in Decompiler window. (GP-40)-processor flag, even if the specified processor is not a valid opinion. (GT-3376, Issue #1311)R_ARM_PC24 (Type: 1) that was causing improper flow in ARM disassembly. (GT-3654)DT_JMPREL relocations and markup of associated PLT entries. (GP-252, Issue #2334)0x00 when expanding a memory block. (GT-3465)XGATE ROR instruction semantics. (GT-3278)movi20 and movi20s instructions. (GT-3337, Issue #1264)movu.b and movu.w instruction semantics. (GT-3345, Issue #1271)lpm and elpm instruction semantics. (GT-3346, Issue #631)BSET instruction. (GT-3366, Issue #1307)vnmla, vnmls, and vnmul. (GT-3368, Issue #1277)vcvt instruction. (GT-3369, Issue #1278)abs instructions. (GT-3379, Issue #1286)BT instruction semantics. (GT-3423, Issue #1370)LOAD/STOR with abs20 were not mapped correctly. (GT-3529, Issue #1518)MOVE USP,x and MOVE x,USP opcodes. (GT-3594, Issue #1593)TEQ instruction pcode to be an XOR. (GP-23, Issue #1802)CMP, CPX, and CPY instructions. (GP-34)rotr instruction. (GP-47)R_ARM_REL32) and added support for type 42 (R_ARM_PREL31). (GP-164, Issue #2261, #2276)pack(1) alignment if default alignment fails. (GT-3401)Method is not Remote errors. (GT-3521, Issue #1440)RSB.w instruction. (GT-3420, Issue #1365)Pcode: XML comms: Badly formed address errors when decompiling HCS12 XGATE code. (GT-3297)Array DataType must be Fixed length exceptions related to function pointer data types. (GT-3309)Low-level Error: XML error: syntax error in the decompiler. (GT-3387, Issue #1329)Integer.MAX. (GT-3357)e_cmpi instruction. (GT-3228, Issue #1127)se_bclri, se_bgeni, se_bseti, and se_btsti. (GT-3232, Issue #967)RDRAND instruction. (GT-3253, Issue #1169)XGATE LDH instruction shifting out high bits. (GT-3268)R_MIPS_REL32, R_X86_64_RELATIVE, and R_X86_64_RELATIVE64 ELF relocations affecting relocatable binaries which have non-zero section/segment load addresses. (GT-3349)goto statement when that label is double-clicked. (GT-2847)__chkstk function. (GT-3006, Issue #670, #671)bl and add instructions. (GT-2744, Issue #362)LSL.W, ASL.B, LSL.B, and ASL.W instructions now correctly set the CF flag. (GT-2907, Issue #619)0x1f patterns. (GT-3005, Issue #709)X condition flag register for the M68000 processor lsl and lsr instructions. (GT-3137, Issue #983)-n NOP command line option. (GT-2905, Issue #561)test.gradle getLogFileUrl() no longer searches user .dir for log4j properties file. (GT-2834, Issue #499)FMA, F16C, and several missing AVX instructions have been added to the base x86 processor specification. The pcode for these instructions is pseudo-op and not a full pcode implementation. (GT-3168)STRING__address_. (GT-2715, Issue #272)Data type does not fit errors when using the Retype actions in the decompiler. (GT-2956)equals() method in Varnode AST. (GT-2959, Issue #677)Type propagation algorithm not settling warnings in the decompiler. (GT-3213, Issue #839)invokedynamic instructions in JVM class files. Made numerous minor improvements to decompilation of JVM bytecode. (GT-2757, Issue #287)R_AARCH64_JUMP26. (GT-2999, Issue #775)R_MIPS_RPREL32 relocation. (GT-3026, Issue #764)R_X86_64_GOT32, R_X86_64_PLT32, R_X86_64_SIZE32, R_X86_64_SIZE64, and R_X86_64_GOTPC32 have been fixed to relocate correctly. Additional ELF x86-64 relocations, found mostly in unlinked .o files, have been added. (GT-3089, Issue #910)-i option. Corrected -ip option to strictly convey remote access hostname to clients. The updated server will only accept connections from Ghidra 9.1 and later clients due to the registry port now employing TLS. (GT-2685, Issue #101, #645)char16_t and char32_t to PDB BASIC_TYPE_STRINGS. (GT-2952, Issue #685)FLOAT_NEG pcodeop to simplify PowerPC fneg instructions. (GT-2781, Issue #387)I status bit save and restore. (GT-2826, Issue #469)RD, WR, FS, and GSBASE instructions in x86. (GT-2940, Issue #554, #555)ADD, AND, CMP, and SUB instructions on x86-64bit. (GT-2955, Issue #881)AAM instruction. (GT-3015)MOVBE instruction. (GT-3039, Issue #822)mov3q instruction decode and semantics. (GT-3080, Issue #905)I2D now correctly pushes an 8-byte double on the stack. (GT-3081)MOV into debug registers has been relaxed. (GT-3117)vectorPermute pcodeop for emulation. (GT-3148)R_MIPS_26, R_MIPS16_26, and R_MICROMIPS_26_S1. (GT-3154, Issue #1001)rlwimi and rlwinm instructions. (GT-3159, Issue #752)BLR instruction. (GT-3191)se_bmaski instruction. (GT-3230, Issue #1123)GhidraScript.askDomainFile() now correctly throws a CancelledException when the cancel button is clicked. (GT-2841)