Linux Kernel
3.7.1
|
#include <linux/slab.h>
#include <linux/thread_info.h>
#include <linux/uaccess.h>
#include <linux/mman.h>
#include <linux/types.h>
#include <linux/err.h>
#include <asm/cacheflush.h>
#include <asm/unaligned.h>
#include <arch/abi.h>
#include <arch/opcode.h>
Go to the source code of this file.
Macros | |
#define | signExtend17(val) sign_extend((val), 17) |
#define | TILE_X1_MASK (0xffffffffULL << 31) |
#define | P pr_info |
Enumerations | |
enum | mem_op { MEMOP_NONE, MEMOP_LOAD, MEMOP_STORE, MEMOP_LOAD_POSTINCR, MEMOP_STORE_POSTINCR } |
Functions | |
__setup ("unaligned_printk=", setup_unaligned_printk) | |
void | single_step_execve (void) |
void | single_step_once (struct pt_regs *regs) |
Variables | |
int | unaligned_printk |
unsigned int | unaligned_fixup_count |
#define P pr_info |
#define signExtend17 | ( | val | ) | sign_extend((val), 17) |
Definition at line 32 of file single_step.c.
#define TILE_X1_MASK (0xffffffffULL << 31) |
Definition at line 33 of file single_step.c.
enum mem_op |
Definition at line 51 of file single_step.c.
__setup | ( | ) |
Definition at line 281 of file single_step.c.
single_step_once() - entry point when single stepping has been triggered. : The machine register state
When we arrive at this routine via a trampoline, the single step engine copies the executing bundle to the single step buffer. If the instruction is a condition branch, then the target is reset to one past the next instruction. If the instruction sets the lr, then that is noted. If the instruction is a jump or call, then the new target pc is preserved and the current bundle instruction set to null.
The necessary post-single-step rewriting information is stored in single_step_state-> We use data segment values because the stack will be rewound when we run the rewritten single-stepped instruction.
Definition at line 305 of file single_step.c.
unsigned int unaligned_fixup_count |
Definition at line 49 of file single_step.c.
int unaligned_printk |
Definition at line 35 of file single_step.c.