Rev 4337 | Rev 4343 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4337 | Rev 4342 | ||
|---|---|---|---|
| Line 202... | Line 202... | ||
| 202 | spinlock_unlock(&bkpoint_lock); |
202 | spinlock_unlock(&bkpoint_lock); |
| 203 | interrupts_restore(ipl); |
203 | interrupts_restore(ipl); |
| 204 | 204 | ||
| 205 | /* Send IPI */ |
205 | /* Send IPI */ |
| 206 | #ifdef CONFIG_SMP |
206 | #ifdef CONFIG_SMP |
| 207 | // ipi_broadcast(VECTOR_DEBUG_IPI); |
207 | // ipi_broadcast(VECTOR_DEBUG_IPI); |
| 208 | #endif |
208 | #endif |
| 209 | 209 | ||
| 210 | return curidx; |
210 | return curidx; |
| 211 | } |
211 | } |
| 212 | 212 | ||
| 213 | #ifdef amd64 |
213 | #ifdef __64_BITS__ |
| 214 | # define getip(x) ((x)->rip) |
214 | #define getip(x) ((x)->rip) |
| 215 | #else |
215 | #else |
| 216 | # define getip(x) ((x)->eip) |
216 | #define getip(x) ((x)->eip) |
| 217 | #endif |
217 | #endif |
| 218 | 218 | ||
| 219 | static void handle_exception(int slot, istate_t *istate) |
219 | static void handle_exception(int slot, istate_t *istate) |
| 220 | { |
220 | { |
| 221 | ASSERT(breakpoints[slot].address); |
221 | ASSERT(breakpoints[slot].address); |
| Line 274... | Line 274... | ||
| 274 | { |
274 | { |
| 275 | unative_t dr6; |
275 | unative_t dr6; |
| 276 | int i; |
276 | int i; |
| 277 | 277 | ||
| 278 | /* Set RF to restart the instruction */ |
278 | /* Set RF to restart the instruction */ |
| 279 | #ifdef amd64 |
279 | #ifdef __64_BITS__ |
| 280 | istate->rflags |= RFLAGS_RF; |
280 | istate->rflags |= RFLAGS_RF; |
| 281 | #else |
281 | #else |
| 282 | istate->eflags |= EFLAGS_RF; |
282 | istate->eflags |= EFLAGS_RF; |
| 283 | #endif |
283 | #endif |
| 284 | 284 | ||
| Line 346... | Line 346... | ||
| 346 | int cmd_print_breakpoints(cmd_arg_t *argv __attribute__((unused))) |
346 | int cmd_print_breakpoints(cmd_arg_t *argv __attribute__((unused))) |
| 347 | { |
347 | { |
| 348 | unsigned int i; |
348 | unsigned int i; |
| 349 | char *symbol; |
349 | char *symbol; |
| 350 | 350 | ||
| 351 | #ifdef __32_BITS__ |
351 | #ifdef __32_BITS__ |
| 352 | printf("# Count Address In symbol\n"); |
352 | printf("# Count Address In symbol\n"); |
| 353 | printf("-- ----- ---------- ---------\n"); |
353 | printf("-- ----- ---------- ---------\n"); |
| 354 | #endif |
354 | #endif |
| 355 | 355 | ||
| 356 | #ifdef __64_BITS__ |
356 | #ifdef __64_BITS__ |