mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
A few formatting fixes. Hopefully make it work with x86-64.
Mon Dec 19 15:15:48 2005 Søren Sandmann <sandmann@redhat.com> * module/sysprof-module.c (timer_notify): A few formatting fixes. Hopefully make it work with x86-64.
This commit is contained in:
committed by
Søren Sandmann Pedersen
parent
35de8d36a0
commit
a829366b72
@ -1,3 +1,8 @@
|
||||
Mon Dec 19 15:15:48 2005 Søren Sandmann <sandmann@redhat.com>
|
||||
|
||||
* module/sysprof-module.c (timer_notify): A few formatting
|
||||
fixes. Hopefully make it work with x86-64.
|
||||
|
||||
2005-11-29 Soeren Sandmann <sandmann@redhat.com>
|
||||
|
||||
* sysprof.c (on_descendants_row_expanded_or_collapsed): New
|
||||
|
||||
2
TODO
2
TODO
@ -18,6 +18,8 @@ Before 1.0.1:
|
||||
|
||||
Before 1.2:
|
||||
|
||||
* Make it compile and work on x86-64
|
||||
|
||||
* Add "sysprof --version"
|
||||
|
||||
* With kernel module not installed, select Profiler->Start, then dismiss
|
||||
|
||||
@ -62,10 +62,12 @@ DECLARE_WAIT_QUEUE_HEAD (wait_for_exit);
|
||||
# define REG_FRAME_PTR rbp
|
||||
# define REG_INS_PTR rip
|
||||
# define REG_STACK_PTR rsp
|
||||
# define REG_STACK_PTR0 rsp0
|
||||
#elif defined(CONFIG_X86)
|
||||
# define REG_FRAME_PTR ebp
|
||||
# define REG_INS_PTR eip
|
||||
# define REG_STACK_PTR esp
|
||||
# define REG_STACK_PTR0 esp0
|
||||
#else
|
||||
# error Sysprof only supports the i386 and x86-64 architectures
|
||||
#endif
|
||||
@ -135,16 +137,17 @@ timer_notify (struct pt_regs *regs)
|
||||
if (!is_user)
|
||||
{
|
||||
trace->addresses[i++] = (void *)0x01;
|
||||
regs = (void *)current->thread.esp0 - sizeof (struct pt_regs);
|
||||
/* FIXME: doesn't compile on x86-64 */
|
||||
regs = (void *)current->thread.REG_STACK_PTR0 - sizeof (struct pt_regs);
|
||||
}
|
||||
|
||||
trace->addresses[i++] = (void *)regs->REG_INS_PTR;
|
||||
|
||||
frame_pointer = (void *)regs->REG_FRAME_PTR;
|
||||
|
||||
while (((result = read_frame (frame_pointer, &frame)) == 0) &&
|
||||
i < SYSPROF_MAX_ADDRESSES &&
|
||||
((unsigned long)frame_pointer) < START_OF_STACK &&
|
||||
while (((result = read_frame (frame_pointer, &frame)) == 0) &&
|
||||
i < SYSPROF_MAX_ADDRESSES &&
|
||||
((unsigned long)frame_pointer) < START_OF_STACK &&
|
||||
(unsigned long)frame_pointer >= regs->REG_STACK_PTR)
|
||||
{
|
||||
trace->addresses[i++] = (void *)frame.return_address;
|
||||
|
||||
Reference in New Issue
Block a user