Rev 2915 | Rev 2922 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2915 | Rev 2918 | ||
---|---|---|---|
Line 159... | Line 159... | ||
159 | 159 | ||
160 | 160 | ||
161 | int task_connect(int taskid) |
161 | int task_connect(int taskid) |
162 | { |
162 | { |
163 | int rc; |
163 | int rc; |
- | 164 | unsigned evmask; |
|
164 | 165 | ||
165 | printf("ipc_connect_kbox(%d)... ", taskid); |
166 | printf("ipc_connect_kbox(%d)... ", taskid); |
166 | rc = ipc_connect_kbox(taskid); |
167 | rc = ipc_connect_kbox(taskid); |
167 | printf("-> %d\n", rc); |
168 | printf("-> %d\n", rc); |
168 | app_phone = rc; |
169 | app_phone = rc; |
Line 171... | Line 172... | ||
171 | printf("udebug_begin()... "); |
172 | printf("udebug_begin()... "); |
172 | rc = udebug_begin(app_phone); |
173 | rc = udebug_begin(app_phone); |
173 | printf("-> %d\n", rc); |
174 | printf("-> %d\n", rc); |
174 | if (rc < 0) return rc; |
175 | if (rc < 0) return rc; |
175 | 176 | ||
- | 177 | evmask = UDEBUG_EM_ALL & ~(UDEBUG_EM_SYSCALL_B | UDEBUG_EM_SYSCALL_E); |
|
176 | printf("udebug_set_evmask(0x%x)... ", UDEBUG_EM_ALL); |
178 | printf("udebug_set_evmask(0x%x)... ", evmask); |
177 | rc = udebug_set_evmask(app_phone, UDEBUG_EM_ALL); |
179 | rc = udebug_set_evmask(app_phone, evmask); |
178 | printf("-> %d\n", rc); |
180 | printf("-> %d\n", rc); |
179 | if (rc < 0) return rc; |
181 | if (rc < 0) return rc; |
180 | 182 | ||
181 | return 0; |
183 | return 0; |
182 | } |
184 | } |
Line 227... | Line 229... | ||
227 | 229 | ||
228 | printf("debug_loop(%d)\n", thread_id); |
230 | printf("debug_loop(%d)\n", thread_id); |
229 | 231 | ||
230 | while (!abort_debug) { |
232 | while (!abort_debug) { |
231 | 233 | ||
- | 234 | printf("go\n"); |
|
232 | /* Run thread until an event occurs */ |
235 | /* Run thread until an event occurs */ |
233 | rc = udebug_go(app_phone, thread_hash, |
236 | rc = udebug_go(app_phone, thread_hash, |
234 | &ev_type, &val0, &val1); |
237 | &ev_type, &val0, &val1); |
235 | 238 | ||
- | 239 | printf("..ev type %d\n", ev_type); |
|
- | 240 | ||
236 | // printf("rc = %d, ev_type=%d\n", rc, ev_type); |
241 | // printf("rc = %d, ev_type=%d\n", rc, ev_type); |
237 | if (ev_type == UDEBUG_EVENT_FINISHED) { |
242 | if (ev_type == UDEBUG_EVENT_FINISHED) { |
238 | printf("thread %u debugging finished\n", thread_id); |
243 | printf("thread %u debugging finished\n", thread_id); |
239 | break; |
244 | break; |
240 | } |
245 | } |
Line 256... | Line 261... | ||
256 | break; |
261 | break; |
257 | case UDEBUG_EVENT_THREAD_E: |
262 | case UDEBUG_EVENT_THREAD_E: |
258 | printf("thread 0x%x exited\n", val0); |
263 | printf("thread 0x%x exited\n", val0); |
259 | abort_debug = true; |
264 | abort_debug = true; |
260 | break; |
265 | break; |
- | 266 | case UDEBUG_EVENT_BREAKPOINT: |
|
- | 267 | printf("breakpoint reached\n"); |
|
- | 268 | usleep(2000*2000); |
|
- | 269 | break; |
|
261 | default: |
270 | default: |
262 | printf("unknown event type %d\n", ev_type); |
271 | printf("unknown event type %d\n", ev_type); |
263 | break; |
272 | break; |
264 | } |
273 | } |
265 | } |
274 | } |