Pin
|
Typedefs | |
typedef LEVEL_BASE::CHILD_PROCESS_CLASS * | LEVEL_PINCLIENT::CHILD_PROCESS |
typedef BOOL(* | LEVEL_PINCLIENT::FOLLOW_CHILD_PROCESS_CALLBACK) (CHILD_PROCESS childProcess, VOID *val) |
Functions | |
OS_PROCESS_ID | LEVEL_PINCLIENT::CHILD_PROCESS_GetId (CHILD_PROCESS childProcess) |
VOID | LEVEL_PINCLIENT::CHILD_PROCESS_GetCommandLine (CHILD_PROCESS childProcess, INT *pArgc, const CHAR *const **pArgv) |
VOID | LEVEL_PINCLIENT::CHILD_PROCESS_SetPinCommandLine (CHILD_PROCESS childProcess, INT argc, const CHAR *const *argv) |
typedef LEVEL_BASE::CHILD_PROCESS_CLASS* LEVEL_PINCLIENT::CHILD_PROCESS |
CHILD_PROCESS - Handle for child process APIs
typedef BOOL(* LEVEL_PINCLIENT::FOLLOW_CHILD_PROCESS_CALLBACK) (CHILD_PROCESS childProcess, VOID *val) |
Call back function before child(Windows*)/exec-ed(Linux*) process is starting to execute. The function can be registered by PIN_AddFollowChildProcessFunction().
[in] | childProcess | Child process handle, it's lifetime is in the scope of the callback |
[in] | val | The tool's call-back value |
VOID LEVEL_PINCLIENT::CHILD_PROCESS_GetCommandLine | ( | CHILD_PROCESS | childProcess, |
INT * | pArgc, | ||
const CHAR *const ** | pArgv | ||
) |
Get application's original command line (without Pin's command line)
[in] | childProcess | child process handle |
[out] | pArgc | pointer to application's argc |
[out] | pArgv | pointer to application's argv this data is allocated by Pin and can't be modified by tool, it's lifetime is in the scope of the callback |
OS_PROCESS_ID LEVEL_PINCLIENT::CHILD_PROCESS_GetId | ( | CHILD_PROCESS | childProcess | ) |
Get process id of child process (meaningful only for Windows*)
[in] | childProcess | child process handle |
VOID LEVEL_PINCLIENT::CHILD_PROCESS_SetPinCommandLine | ( | CHILD_PROCESS | childProcess, |
INT | argc, | ||
const CHAR *const * | argv | ||
) |
Set Pin's (and tool's) command line for the child process (e.g. "c:\\pin_path\\pin -probe -follow_execv -t c:\\pintool_path\\tool --")
If this API is not called, Pin will be injected into child/exec-ed process with the same command line as of current process.
NOTE:
[in] | childProcess | handle to child process |
[in] | argc | Pin's (and tool's) argc |
[in] | argv | Pin's (and tool's) argv, this data is allocated by tool and can't be modified by Pin, it's lifetime is in the scope of this function |