IDB has the ability to detect any occurrence of a signal in your program. You can tell IDB in advance what to do for each kind of signal. Normally, IDB is set up to let the some signals like SIGUSR1 be silently passed to user program but to stop your program immediately whenever an error signal happens. You can change these settings with the handle command.
handle_command
: handle signal_name handle_keyword
handle_keyword
: stop | nostop | print | noprint | pass | nopass | ignore | noignore
info_handle_command
: info handle
| info signals
The keywords allowed by the handle command can be abbreviated. Their full names are:
Keywords | Description |
---|---|
nostop | IDB should not stop your program when this signal happens. It may still print a message telling you that the signal has come in. |
stop | IDB should stop your program when this signal happens. This implies the print keyword as well. |
IDB should print a message when this signal happens. | |
noprint | IDB should not mention the occurrence of the signal at all. This implies the nostop keyword as well. |
pass noignore | IDB should allow your program to see this signal; your program can handle the signal, or else it may terminate if the signal is fatal and not handled. pass and noignore are synonyms. |
nopass ignore | IDB should not allow your program to see this signal. nopass and ignore are synonyms. |
Example of using command info handle (GDB mode):
(idb) info handle
Signal Stop Print Pass to program Description
SIGHUP No No Yes Hangup
SIGINT Yes Yes No Interrupt
SIGQUIT Yes Yes No Quit
SIGILL Yes Yes No Illegal instruction
SIGTRAP Yes Yes No Trace/breakpoint trap
SIGABRT Yes Yes No Aborted
SIGEMT Yes Yes No Emulation trap
SIGFPE Yes Yes No Arithmetic exception
SIGKILL No No Yes Killed
SIGBUS Yes Yes No Bus error
SIGSEGV Yes Yes No Segmentation fault
SIGSYS Yes Yes No Bad system call
SIGPIPE Yes Yes No Broken pipe
SIGALRM No No Yes Alarm clock
SIGTERM Yes Yes No Terminated
SIGURG Yes Yes No Urgent I/O condition
SIGSTOP Yes Yes No Stopped (signal)
SIGTSTP No No Yes Stopped (user)
SIGCONT No No Yes Continued
SIGCHLD No No Yes Child status changed
SIGTTIN Yes Yes No Stopped (tty input)
SIGTTOU Yes Yes No Stopped (tty output)
SIGIO Yes Yes No I/O possible
SIGXCPU Yes Yes No CPU time limit exceeded
SIGXFSZ Yes Yes No File size limit exceeded
SIGVTALRM Yes Yes No Virtual timer expired
SIGPROF Yes Yes No Profiling timer expired
SIGWINCH No No Yes Window size changed
SIGLOST Yes Yes No Resource lost
SIGUSR1 Yes Yes No User defined signal 1
SIGUSR2 Yes Yes No User defined signal 2
SIGPWR Yes Yes No Power fail/restart
SIGPOLL No No Yes Pollable event occurred
SIGWIND Yes Yes No SIGWIND
SIGPHONE Yes Yes No SIGPHONE
SIGWAITING Yes Yes No Process's LWPs are blocked
SIGLWP Yes Yes No Signal LWP
SIGDANGER Yes Yes No Swap space dangerously low
SIGGRANT Yes Yes No Monitor mode granted
SIGRETRACT Yes Yes No Need to relinquish monitor mode
SIGMSG Yes Yes No Monitor mode data available
SIGSOUND Yes Yes No Sound completed
SIGSAK Yes Yes No Secure attention
SIGPRIO Yes Yes No SIGPRIO
SIG33 No No Yes Real-time event 33
SIG34 No No Yes Real-time event 34
SIG35 No No Yes Real-time event 35
SIG36 No No Yes Real-time event 36
SIG37 No No Yes Real-time event 37
SIG38 No No Yes Real-time event 38
SIG39 No No Yes Real-time event 39
SIG40 No No Yes Real-time event 40
SIG41 No No Yes Real-time event 41
SIG42 No No Yes Real-time event 42
SIG43 No No Yes Real-time event 43
SIG44 No No Yes Real-time event 44
SIG45 No No Yes Real-time event 45
SIG46 No No Yes Real-time event 46
SIG47 No No Yes Real-time event 47
SIG48 No No Yes Real-time event 48
SIG49 No No Yes Real-time event 49
SIG50 No No Yes Real-time event 50
SIG51 No No Yes Real-time event 51
SIG52 No No Yes Real-time event 52
SIG53 No No Yes Real-time event 53
SIG54 No No Yes Real-time event 54
SIG55 No No Yes Real-time event 55
SIG56 No No Yes Real-time event 56
SIG57 No No Yes Real-time event 57
SIG58 No No Yes Real-time event 58
SIG59 No No Yes Real-time event 59
SIG60 No No Yes Real-time event 60
SIG61 No No Yes Real-time event 61
SIG62 No No Yes Real-time event 62
SIG63 No No Yes Real-time event 63
SIGCANCEL Yes Yes No LWP internal signal
SIG32 Yes Yes No Real-time event 32
SIG64 No No Yes Real-time event 64
SIG65 Yes Yes No Real-time event 65
SIG66 Yes Yes No Real-time event 66
SIG67 Yes Yes No Real-time event 67
SIG68 Yes Yes No Real-time event 68
SIG69 Yes Yes No Real-time event 69
SIG70 Yes Yes No Real-time event 70
SIG71 Yes Yes No Real-time event 71
SIG72 Yes Yes No Real-time event 72
SIG73 Yes Yes No Real-time event 73
SIG74 Yes Yes No Real-time event 74
SIG75 Yes Yes No Real-time event 75
SIG76 Yes Yes No Real-time event 76
SIG77 Yes Yes No Real-time event 77
SIG78 Yes Yes No Real-time event 78
SIG79 Yes Yes No Real-time event 79
SIG80 Yes Yes No Real-time event 80
SIG81 Yes Yes No Real-time event 81
SIG82 Yes Yes No Real-time event 82
SIG83 Yes Yes No Real-time event 83
SIG84 Yes Yes No Real-time event 84
SIG85 Yes Yes No Real-time event 85
SIG86 Yes Yes No Real-time event 86
SIG87 Yes Yes No Real-time event 87
SIG88 Yes Yes No Real-time event 88
SIG89 Yes Yes No Real-time event 89
SIG90 Yes Yes No Real-time event 90
SIG91 Yes Yes No Real-time event 91
SIG92 Yes Yes No Real-time event 92
SIG93 Yes Yes No Real-time event 93
SIG94 Yes Yes No Real-time event 94
SIG95 Yes Yes No Real-time event 95
SIG96 Yes Yes No Real-time event 96
SIG97 Yes Yes No Real-time event 97
SIG98 Yes Yes No Real-time event 98
SIG99 Yes Yes No Real-time event 99
SIG100 Yes Yes No Real-time event 100
SIG101 Yes Yes No Real-time event 101
SIG102 Yes Yes No Real-time event 102
SIG103 Yes Yes No Real-time event 103
SIG104 Yes Yes No Real-time event 104
SIG105 Yes Yes No Real-time event 105
SIG106 Yes Yes No Real-time event 106
SIG107 Yes Yes No Real-time event 107
SIG108 Yes Yes No Real-time event 108
SIG109 Yes Yes No Real-time event 109
SIG110 Yes Yes No Real-time event 110
SIG111 Yes Yes No Real-time event 111
SIG112 Yes Yes No Real-time event 112
SIG113 Yes Yes No Real-time event 113
SIG114 Yes Yes No Real-time event 114
SIG115 Yes Yes No Real-time event 115
SIG116 Yes Yes No Real-time event 116
SIG117 Yes Yes No Real-time event 117
SIG118 Yes Yes No Real-time event 118
SIG119 Yes Yes No Real-time event 119
SIG120 Yes Yes No Real-time event 120
SIG121 Yes Yes No Real-time event 121
SIG122 Yes Yes No Real-time event 122
SIG123 Yes Yes No Real-time event 123
SIG124 Yes Yes No Real-time event 124
SIG125 Yes Yes No Real-time event 125
SIG126 Yes Yes No Real-time event 126
SIG127 Yes Yes No Real-time event 127
SIGINFO Yes Yes No Information request
EXC_BAD_ACCESSYes Yes No Could not access memory
EXC_BAD_INSTRUCTIONYes Yes No Illegal instruction/operand
EXC_ARITHMETICYes Yes No Arithmetic exception
EXC_EMULATION Yes Yes No Emulation instruction
EXC_SOFTWARE Yes Yes No Software generated exception
EXC_BREAKPOINTYes Yes No Breakpoint
Example of using command handle (GDB mode):
(idb) info handle ILL
Unrecognized or ambiguous flag word: "ILL".
(idb) handle SIGILL nostop noprint
Signal Stop Print Pass to program Description
SIGILL No No No Illegal instruction