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>
|
2005-11-29 Soeren Sandmann <sandmann@redhat.com>
|
||||||
|
|
||||||
* sysprof.c (on_descendants_row_expanded_or_collapsed): New
|
* sysprof.c (on_descendants_row_expanded_or_collapsed): New
|
||||||
|
|||||||
2
TODO
2
TODO
@ -18,6 +18,8 @@ Before 1.0.1:
|
|||||||
|
|
||||||
Before 1.2:
|
Before 1.2:
|
||||||
|
|
||||||
|
* Make it compile and work on x86-64
|
||||||
|
|
||||||
* Add "sysprof --version"
|
* Add "sysprof --version"
|
||||||
|
|
||||||
* With kernel module not installed, select Profiler->Start, then dismiss
|
* 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_FRAME_PTR rbp
|
||||||
# define REG_INS_PTR rip
|
# define REG_INS_PTR rip
|
||||||
# define REG_STACK_PTR rsp
|
# define REG_STACK_PTR rsp
|
||||||
|
# define REG_STACK_PTR0 rsp0
|
||||||
#elif defined(CONFIG_X86)
|
#elif defined(CONFIG_X86)
|
||||||
# define REG_FRAME_PTR ebp
|
# define REG_FRAME_PTR ebp
|
||||||
# define REG_INS_PTR eip
|
# define REG_INS_PTR eip
|
||||||
# define REG_STACK_PTR esp
|
# define REG_STACK_PTR esp
|
||||||
|
# define REG_STACK_PTR0 esp0
|
||||||
#else
|
#else
|
||||||
# error Sysprof only supports the i386 and x86-64 architectures
|
# error Sysprof only supports the i386 and x86-64 architectures
|
||||||
#endif
|
#endif
|
||||||
@ -135,16 +137,17 @@ timer_notify (struct pt_regs *regs)
|
|||||||
if (!is_user)
|
if (!is_user)
|
||||||
{
|
{
|
||||||
trace->addresses[i++] = (void *)0x01;
|
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;
|
trace->addresses[i++] = (void *)regs->REG_INS_PTR;
|
||||||
|
|
||||||
frame_pointer = (void *)regs->REG_FRAME_PTR;
|
frame_pointer = (void *)regs->REG_FRAME_PTR;
|
||||||
|
|
||||||
while (((result = read_frame (frame_pointer, &frame)) == 0) &&
|
while (((result = read_frame (frame_pointer, &frame)) == 0) &&
|
||||||
i < SYSPROF_MAX_ADDRESSES &&
|
i < SYSPROF_MAX_ADDRESSES &&
|
||||||
((unsigned long)frame_pointer) < START_OF_STACK &&
|
((unsigned long)frame_pointer) < START_OF_STACK &&
|
||||||
(unsigned long)frame_pointer >= regs->REG_STACK_PTR)
|
(unsigned long)frame_pointer >= regs->REG_STACK_PTR)
|
||||||
{
|
{
|
||||||
trace->addresses[i++] = (void *)frame.return_address;
|
trace->addresses[i++] = (void *)frame.return_address;
|
||||||
|
|||||||
Reference in New Issue
Block a user