Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Let me try and clarify.

Is there any way for me to see very very low level activity on my computer? Stuff like:

  • register content
  • opcodes being sent
  • specific memory addresses

Or anything lower than this (not sure its possible). I'm trying to figure this out to learn a bit more about how modern computers run at this low of a level.

share|improve this question
up vote 4 down vote accepted

You can see all this for an individual program with a debugger like gdb, but it changes so rapidly that you wouldn't be able to see anything watching it live, and even tracking it so you could see it at all would slow the computer to a crawl. I suggest learning about assembly and compilers, that's what really helped me understand such things. Then you can step through programs with gdb if you want to see it for real.

share|improve this answer
This is what I thought, although it would have been nice to be able to see opcodes. – n0pe Nov 20 '11 at 6:02
@MaxMackie You can see the opcodes. But if you step through each assembler instruction, you won't see much get done. Your computer executes a couple of billions of instructions each second. – Gilles Nov 20 '11 at 17:55

The very low level you request is machine language. That highly depends on the processor type. If you are not planning to do direct machine language programming yourselv, I would not recommend doing research on that indirect level.

Apart from that the cPU technology changes fast - too fast to keep pace if it is not your core-job.

IMHO strace is a level deep enough to understand what is going on at OS-level.

If you want to know what is going on - dig into the source code of the functions that you see being called there.

share|improve this answer

Not directly. You can set traps in your code so that you can get a slice of what the CPU is doing at that moment in the code, but you can't actually "see" what it's doing in realtime.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.