public interface

IUnmangledRoutine

implements IUnmangledData
com.pnfsoftware.jeb.core.units.code.asm.mangling.IUnmangledRoutine

Class Overview

Interface to access an unmangled routine declaration.

Summary

Public Methods
abstract String getCallingConvention()
abstract String getName()
abstract String getNameWithParameters(boolean emptyParameters)
abstract String getPrototype(boolean noCppFeatures)
Provide the routine prototype with the following JEB specific syntax:

<calling_convention> return_type(parameter1_type _)
<calling_convention> return_type(parameter1_type,parameter2_type...)
...

abstract String getPrototype(boolean noCppFeatures, boolean safeForParser)
Provide the routine prototype using the following JEB specific syntax:

<calling_convention> return_type(parameter1_type[ _])
<calling_convention> return_type(parameter1_type,parameter2_type...)
...

abstract String getReturnType()
abstract String getSignature(boolean noCppFeatures)
Provide the routine prototype using C-style syntax
abstract String getSignature(boolean noCppFeatures, boolean safeForParser)
Provide the routine prototype using C-style syntax
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.asm.mangling.IUnmangledData

Public Methods

public abstract String getCallingConvention ()

Returns
  • calling convention, null if not set

public abstract String getName ()

Returns
  • routine name

public abstract String getNameWithParameters (boolean emptyParameters)

Parameters
emptyParameters true to force () parameters even if empty
Returns
  • routine name with its parameters if any

public abstract String getPrototype (boolean noCppFeatures)

Provide the routine prototype with the following JEB specific syntax:

<calling_convention> return_type(parameter1_type _)
<calling_convention> return_type(parameter1_type,parameter2_type...)
...

This method is equivalent getPrototype(noCppFeatures, true).

Parameters
noCppFeatures if true a JEB prototype will be provided only if the original unmangled routine prototype is strict C, i.e. the method will return null if the unmangled string contains C++ specific features
Returns
  • routine prototype, null if not applicable (e.g. because of unmangler failure, or because the mangled declaration does not contain the full prototype)

public abstract String getPrototype (boolean noCppFeatures, boolean safeForParser)

Provide the routine prototype using the following JEB specific syntax:

<calling_convention> return_type(parameter1_type[ _])
<calling_convention> return_type(parameter1_type,parameter2_type...)
...

Parameters
noCppFeatures if true a JEB prototype will be provided only if the original unmangled routine prototype is strict C, i.e. the method will return null if the unmangled string contains C++ specific features
safeForParser if true, single-parameter prototypes will be generated slightly differently: the parameter is deanonymized and given the name '_'
Returns
  • routine prototype, null if not applicable (e.g. because of unmangler failure, or because the mangled declaration does not contain the full prototype)

public abstract String getReturnType ()

Returns
  • return type, null if not set

public abstract String getSignature (boolean noCppFeatures)

Provide the routine prototype using C-style syntax

Parameters
noCppFeatures if true a JEB prototype will be provided only if the original unmangled routine prototype is strict C, i.e. the method will return null if the unmangled string contains C++ specific features
Returns
  • routine prototype, null if not applicable (e.g. because of unmangler failure, or because the mangled declaration does not contain the full prototype)

public abstract String getSignature (boolean noCppFeatures, boolean safeForParser)

Provide the routine prototype using C-style syntax

Parameters
noCppFeatures if true a JEB prototype will be provided only if the original unmangled routine prototype is strict C, i.e. the method will return null if the unmangled string contains C++ specific features
safeForParser if true, single-parameter prototypes will be generated slightly differently: the parameter is deanonymized and given the name '_'
Returns
  • routine prototype, null if not applicable (e.g. because of unmangler failure, or because the mangled declaration does not contain the full prototype)