Move enum trace_event into a separate header
As it will have users outside strace.c in the future. * trace_event.h (enum trace_event): Move it from... * strace.c (enum trace_event): ...here. (#include "trace_event.h"): New header, for enum trace_event. * Makefile.am (strace_SOURCES): Add trace_event.h.
This commit is contained in:
parent
576e2db4d0
commit
0b786d6641
@ -306,6 +306,7 @@ strace_SOURCES = \
|
||||
term.c \
|
||||
time.c \
|
||||
times.c \
|
||||
trace_event.h \
|
||||
truncate.c \
|
||||
ubi.c \
|
||||
ucopy.c \
|
||||
|
59
strace.c
59
strace.c
@ -50,6 +50,7 @@
|
||||
#include "scno.h"
|
||||
#include "ptrace.h"
|
||||
#include "printsiginfo.h"
|
||||
#include "trace_event.h"
|
||||
|
||||
/* In some libc, these aren't declared. Do it ourself: */
|
||||
extern char **environ;
|
||||
@ -2191,64 +2192,6 @@ print_event_exit(struct tcb *tcp)
|
||||
line_ended();
|
||||
}
|
||||
|
||||
enum trace_event {
|
||||
/* Break the main loop. */
|
||||
TE_BREAK,
|
||||
|
||||
/* Call next_event() again. */
|
||||
TE_NEXT,
|
||||
|
||||
/* Restart the tracee with signal 0 and call next_event() again. */
|
||||
TE_RESTART,
|
||||
|
||||
/*
|
||||
* For all the events below, current_tcp is set to current tracee's
|
||||
* tcb. All the suggested actions imply that you want to continue
|
||||
* tracing of the current tracee; alternatively, you can detach it.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Syscall entry or exit.
|
||||
* Restart the tracee with signal 0, or with an injected signal number.
|
||||
*/
|
||||
TE_SYSCALL_STOP,
|
||||
|
||||
/*
|
||||
* Tracee received signal with number WSTOPSIG(*pstatus); signal info
|
||||
* is written to *si. Restart the tracee (with that signal number
|
||||
* if you want to deliver it).
|
||||
*/
|
||||
TE_SIGNAL_DELIVERY_STOP,
|
||||
|
||||
/*
|
||||
* Tracee was killed by a signal with number WTERMSIG(*pstatus).
|
||||
*/
|
||||
TE_SIGNALLED,
|
||||
|
||||
/*
|
||||
* Tracee was stopped by a signal with number WSTOPSIG(*pstatus).
|
||||
* Restart the tracee with that signal number.
|
||||
*/
|
||||
TE_GROUP_STOP,
|
||||
|
||||
/*
|
||||
* Tracee exited with status WEXITSTATUS(*pstatus).
|
||||
*/
|
||||
TE_EXITED,
|
||||
|
||||
/*
|
||||
* Tracee is going to perform execve().
|
||||
* Restart the tracee with signal 0.
|
||||
*/
|
||||
TE_STOP_BEFORE_EXECVE,
|
||||
|
||||
/*
|
||||
* Tracee is going to terminate.
|
||||
* Restart the tracee with signal 0.
|
||||
*/
|
||||
TE_STOP_BEFORE_EXIT,
|
||||
};
|
||||
|
||||
static enum trace_event
|
||||
next_event(int *pstatus, siginfo_t *si)
|
||||
{
|
||||
|
91
trace_event.h
Normal file
91
trace_event.h
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The strace developers.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_TRACE_EVENT_H
|
||||
#define STRACE_TRACE_EVENT_H
|
||||
|
||||
/* Possible trace event loop states. Returned by next_event() and dispatched by
|
||||
* dispatch_event(). */
|
||||
enum trace_event {
|
||||
/* Break the main loop. */
|
||||
TE_BREAK,
|
||||
|
||||
/* Call next_event() again. */
|
||||
TE_NEXT,
|
||||
|
||||
/* Restart the tracee with signal 0 and call next_event() again. */
|
||||
TE_RESTART,
|
||||
|
||||
/*
|
||||
* For all the events below, current_tcp is set to current tracee's
|
||||
* tcb. All the suggested actions imply that you want to continue
|
||||
* tracing of the current tracee; alternatively, you can detach it.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Syscall entry or exit.
|
||||
* Restart the tracee with signal 0, or with an injected signal number.
|
||||
*/
|
||||
TE_SYSCALL_STOP,
|
||||
|
||||
/*
|
||||
* Tracee received signal with number WSTOPSIG(*pstatus); signal info
|
||||
* is written to *si. Restart the tracee (with that signal number
|
||||
* if you want to deliver it).
|
||||
*/
|
||||
TE_SIGNAL_DELIVERY_STOP,
|
||||
|
||||
/*
|
||||
* Tracee was killed by a signal with number WTERMSIG(*pstatus).
|
||||
*/
|
||||
TE_SIGNALLED,
|
||||
|
||||
/*
|
||||
* Tracee was stopped by a signal with number WSTOPSIG(*pstatus).
|
||||
* Restart the tracee with that signal number.
|
||||
*/
|
||||
TE_GROUP_STOP,
|
||||
|
||||
/*
|
||||
* Tracee exited with status WEXITSTATUS(*pstatus).
|
||||
*/
|
||||
TE_EXITED,
|
||||
|
||||
/*
|
||||
* Tracee is going to perform execve().
|
||||
* Restart the tracee with signal 0.
|
||||
*/
|
||||
TE_STOP_BEFORE_EXECVE,
|
||||
|
||||
/*
|
||||
* Tracee is going to terminate.
|
||||
* Restart the tracee with signal 0.
|
||||
*/
|
||||
TE_STOP_BEFORE_EXIT,
|
||||
};
|
||||
|
||||
#endif /* !STRACE_TRACE_EVENT_H */
|
Loading…
x
Reference in New Issue
Block a user