"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/Rose/BinaryAnalysis/Debugger.h" between
rose-0.11.35.0.tar.gz and rose-0.11.36.0.tar.gz

About: ROSE is a compiler infrastructure to build source-to-source program transformation and analysis tools for large-scale C (C89 and C98), C++ (C++98 and C++11), UPC, Fortran (77/95/2003), OpenMP, Java, Python and PHP applications.

Debugger.h  (rose-0.11.35.0):Debugger.h  (rose-0.11.36.0)
skipping to change at line 337 skipping to change at line 337
/** Remove breakpoints. */ /** Remove breakpoints. */
void clearBreakpoint(const AddressInterval&); void clearBreakpoint(const AddressInterval&);
/** Remove all breakpoints. */ /** Remove all breakpoints. */
void clearBreakpoints() { breakpoints_.clear(); } void clearBreakpoints() { breakpoints_.clear(); }
/** Execute one instruction. */ /** Execute one instruction. */
void singleStep(); void singleStep();
/** Execute to a system call. */
void stepIntoSyscall();
#if 0 // [Robb Matzke 2021-05-26]: doesn't seem to work on Linux 5.4: always say
s PTRACE_SYSCALL_INFO_NONE
/** Information about a system call entry. */
struct SyscallEntry {
uint64_t functionNumber; /**< System call functio
n number being invoked. */
std::vector<uint64_t> arguments; /**< Up to six arguments
. */
SyscallEntry()
: functionNumber(0) {}
SyscallEntry(uint64_t functionNumber, uint64_t arguments[6])
: functionNumber(functionNumber), arguments(arguments+0, arguments+6
) {}
};
/** Returns information about a system call entry.
*
* If the subordinate is stopped at a system call entry point, then informa
tion about the system call is
* returned. Otherwise nothing is returned. */
Sawyer::Optional<SyscallEntry> syscallEntryInfo();
/** Information about a system call exit. */
class SyscallExit {
bool isError_; // if true, then retval
is -errno
int64_t retval_;
public:
SyscallExit()
: isError_(true), retval_(-EINVAL) {}
SyscallExit(int64_t retval, uint8_t isError)
: isError_(isError != 0), retval_(retval) {}
/** Return value if not an error. */
Sawyer::Optional<int64_t> returnValue() const {
if (isError_) {
return Sawyer::Nothing();
} else {
return retval_;
}
}
/** Return error number if present. */
Sawyer::Optional<int> errorNumber() const {
if (isError_) {
return -retval_;
} else {
return Sawyer::Nothing();
}
}
/** Raw return value. */
uint64_t rawReturn() const {
return (uint64_t)retval_;
}
};
/** Returns information about a system call exit.
*
* If the subordinate is stopped at a system call exit, then information ab
out the system call is returned. Otherwise
* nothing is returned. */
Sawyer::Optional<SyscallExit> syscallExitInfo();
#endif
/** Run until the next breakpoint is reached. */ /** Run until the next breakpoint is reached. */
void runToBreakpoint(); void runToBreakpoint();
/** Run until the next system call. /** Run until the next system call.
* *
* The subordinate is run until it is about to make a system call or has ju st returned from a system call, or it has * The subordinate is run until it is about to make a system call or has ju st returned from a system call, or it has
* encountered a signal or terminated. Execution does not stop at break po ints. */ * encountered a signal or terminated. Execution does not stop at break po ints. */
void runToSyscall(); void runToSyscall();
/** Run the program and return an execution trace. */ /** Run the program and return an execution trace. */
 End of changes. 1 change blocks. 
0 lines changed or deleted 69 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)