1

From strace manual:

-i Print the instruction pointer at the time of the system call. 

I straced my programm:

strace -i prog

As a result I got a lot of system calls. One of them:

[000da49c] open("./rabbit.o", O_RDONLY) = 3

But disassembled instruction at this address of prog doesn't call any syscall (hte editor):

da49c !   mov         r7, ip                          

What is wrong? How can I find the places of system calls of my program?

P.S. Architecture of my device doesn't support GDB-command catch syscall.

1 Answer 1

2

To cite the Bugs section of the "strace" man-page:

The -i option is weakly supported.

Another tip which might help you: Do you looked at the previous code? The IP at point of putting it out, already points to the NEXT instruction, after the syscall. So you should check the instruction before da49c.

Sign up to request clarification or add additional context in comments.

1 Comment

it is: da498 ! svc 0x00000000 . It could be syscall I should check it. Thank you for reply.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.