* Patch in unused memory. */
| 400 | * Patch in unused memory. |
| 401 | */ |
| 402 | static void patchUnused(Patch *P, unsigned offset) |
| 403 | { |
| 404 | assert(offset <= P->I->size); |
| 405 | for (unsigned i = offset; i < P->I->size; i++) |
| 406 | { |
| 407 | switch (P->I->STATE[i]) |
| 408 | { |
| 409 | case STATE_INSTRUCTION: case STATE_QUEUED: |
| 410 | P->I->PATCH[i] = /*int3=*/0xcc; |
| 411 | P->I->STATE[i] = STATE_FREE; |
| 412 | break; |
| 413 | default: |
| 414 | break; |
| 415 | } |
| 416 | } |
| 417 | } |
| 418 | |
| 419 | /* |
| 420 | * Return true if the given instruction can be instrumented. |