mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-05 03:07:56 +00:00
Added two new events: pre_deliver_signal and post_deliver_signal.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1434
This commit is contained in:
parent
48b80f2249
commit
08f8bf00c2
@ -389,8 +389,12 @@ typedef
|
||||
void (*post_mutex_unlock) ( ThreadId tid,
|
||||
void* /*pthread_mutex_t* */ mutex );
|
||||
|
||||
/* Signal events (not exhaustive) */
|
||||
void (*pre_deliver_signal) ( ThreadId tid, Int sigNo, Bool alt_stack );
|
||||
void (*post_deliver_signal) ( ThreadId tid, Int sigNo );
|
||||
|
||||
|
||||
/* Others... condition variable, signal events... */
|
||||
/* Others... condition variable... */
|
||||
/* ... */
|
||||
}
|
||||
VgTrackEvents;
|
||||
|
||||
@ -64,42 +64,46 @@ VgNeeds VG_(needs) = {
|
||||
|
||||
VgTrackEvents VG_(track_events) = {
|
||||
/* Memory events */
|
||||
.new_mem_startup = NULL,
|
||||
.new_mem_heap = NULL,
|
||||
.new_mem_stack = NULL,
|
||||
.new_mem_stack_aligned = NULL,
|
||||
.new_mem_stack_signal = NULL,
|
||||
.new_mem_brk = NULL,
|
||||
.new_mem_mmap = NULL,
|
||||
.new_mem_startup = NULL,
|
||||
.new_mem_heap = NULL,
|
||||
.new_mem_stack = NULL,
|
||||
.new_mem_stack_aligned = NULL,
|
||||
.new_mem_stack_signal = NULL,
|
||||
.new_mem_brk = NULL,
|
||||
.new_mem_mmap = NULL,
|
||||
|
||||
.copy_mem_heap = NULL,
|
||||
.copy_mem_remap = NULL,
|
||||
.change_mem_mprotect = NULL,
|
||||
.copy_mem_heap = NULL,
|
||||
.copy_mem_remap = NULL,
|
||||
.change_mem_mprotect = NULL,
|
||||
|
||||
.ban_mem_heap = NULL,
|
||||
.ban_mem_stack = NULL,
|
||||
.ban_mem_heap = NULL,
|
||||
.ban_mem_stack = NULL,
|
||||
|
||||
.die_mem_heap = NULL,
|
||||
.die_mem_stack = NULL,
|
||||
.die_mem_stack_aligned = NULL,
|
||||
.die_mem_stack_signal = NULL,
|
||||
.die_mem_brk = NULL,
|
||||
.die_mem_munmap = NULL,
|
||||
.die_mem_heap = NULL,
|
||||
.die_mem_stack = NULL,
|
||||
.die_mem_stack_aligned = NULL,
|
||||
.die_mem_stack_signal = NULL,
|
||||
.die_mem_brk = NULL,
|
||||
.die_mem_munmap = NULL,
|
||||
|
||||
.bad_free = NULL,
|
||||
.mismatched_free = NULL,
|
||||
.bad_free = NULL,
|
||||
.mismatched_free = NULL,
|
||||
|
||||
.pre_mem_read = NULL,
|
||||
.pre_mem_read_asciiz = NULL,
|
||||
.pre_mem_write = NULL,
|
||||
.post_mem_write = NULL,
|
||||
.pre_mem_read = NULL,
|
||||
.pre_mem_read_asciiz = NULL,
|
||||
.pre_mem_write = NULL,
|
||||
.post_mem_write = NULL,
|
||||
|
||||
/* Scheduler events */
|
||||
.thread_run = NULL,
|
||||
.thread_run = NULL,
|
||||
|
||||
/* Mutex events */
|
||||
.post_mutex_lock = NULL,
|
||||
.post_mutex_unlock = NULL,
|
||||
.post_mutex_lock = NULL,
|
||||
.post_mutex_unlock = NULL,
|
||||
|
||||
/* Signal events */
|
||||
.pre_deliver_signal = NULL,
|
||||
.post_deliver_signal = NULL,
|
||||
};
|
||||
|
||||
/* static */
|
||||
@ -217,6 +221,9 @@ TRACK( pre_mutex_lock, ThreadId tid, void* /*pthread_mutex_t* */ mutex)
|
||||
TRACK(post_mutex_lock, ThreadId tid, void* /*pthread_mutex_t* */ mutex)
|
||||
TRACK(post_mutex_unlock, ThreadId tid, void* /*pthread_mutex_t* */ mutex)
|
||||
|
||||
TRACK(pre_deliver_signal, ThreadId tid, Int sigNum, Bool alt_stack)
|
||||
TRACK(post_deliver_signal, ThreadId tid, Int sigNum)
|
||||
|
||||
/*--------------------------------------------------------------------*/
|
||||
/* UCodeBlocks */
|
||||
|
||||
|
||||
@ -950,8 +950,15 @@ void vg_push_signal_frame ( ThreadId tid, int sigNo )
|
||||
VG_(message)(Vg_DebugMsg,
|
||||
"delivering signal %d to thread %d: on ALT STACK",
|
||||
sigNo, tid );
|
||||
|
||||
/* Signal delivery to skins */
|
||||
VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/False );
|
||||
|
||||
} else {
|
||||
esp_top_of_frame = tst->m_esp;
|
||||
|
||||
/* Signal delivery to skins */
|
||||
VG_TRACK( pre_deliver_signal, tid, sigNo, /*alt_stack*/True );
|
||||
}
|
||||
|
||||
esp = esp_top_of_frame;
|
||||
@ -1065,6 +1072,9 @@ Int vg_pop_signal_frame ( ThreadId tid )
|
||||
was delivered. */
|
||||
tst->status = frame->status;
|
||||
|
||||
/* Notify skins */
|
||||
VG_TRACK( post_deliver_signal, tid, sigNo );
|
||||
|
||||
return sigNo;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user