aboutsummaryrefslogtreecommitdiffstats
path: root/trace-stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'trace-stack.c')
-rw-r--r--trace-stack.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/trace-stack.c b/trace-stack.c
index 3d9f392..24ba194 100644
--- a/trace-stack.c
+++ b/trace-stack.c
@@ -153,6 +153,10 @@ static void read_trace(void)
153 fclose(fp); 153 fclose(fp);
154} 154}
155 155
156#define OPT_start 255
157#define OPT_stop 254
158#define OPT_reset 253
159
156void trace_stack (int argc, char **argv) 160void trace_stack (int argc, char **argv)
157{ 161{
158 enum stack_type trace_type = STACK_REPORT; 162 enum stack_type trace_type = STACK_REPORT;
@@ -167,9 +171,9 @@ void trace_stack (int argc, char **argv)
167 for (;;) { 171 for (;;) {
168 int option_index = 0; 172 int option_index = 0;
169 static struct option long_options[] = { 173 static struct option long_options[] = {
170 {"start", no_argument, NULL, 0}, 174 {"start", no_argument, NULL, OPT_start},
171 {"stop", no_argument, NULL, 0}, 175 {"stop", no_argument, NULL, OPT_stop},
172 {"reset", no_argument, NULL, 0}, 176 {"reset", no_argument, NULL, OPT_reset},
173 {"help", no_argument, NULL, '?'}, 177 {"help", no_argument, NULL, '?'},
174 {NULL, 0, NULL, 0} 178 {NULL, 0, NULL, 0}
175 }; 179 };
@@ -183,20 +187,14 @@ void trace_stack (int argc, char **argv)
183 case 'h': 187 case 'h':
184 usage(argv); 188 usage(argv);
185 break; 189 break;
186 case 0: 190 case OPT_start:
187 switch(option_index) { 191 trace_type = STACK_START;
188 case 0: 192 break;
189 trace_type = STACK_START; 193 case OPT_stop:
190 break; 194 trace_type = STACK_STOP;
191 case 1: 195 break;
192 trace_type = STACK_STOP; 196 case OPT_reset:
193 break; 197 trace_type = STACK_RESET;
194 case 2:
195 trace_type = STACK_RESET;
196 break;
197 default:
198 usage(argv);
199 }
200 break; 198 break;
201 default: 199 default:
202 usage(argv); 200 usage(argv);