Code::Blocks Forums
User forums => Using Code::Blocks => Topic started by: engineer on November 19, 2008, 02:09:18 am
-
Hi @ all, :D
I'm currently "pimping up" some code for FDTD(numerical DGL computations). That means I try to speed the code up as much as possible.
Among other things I use Inline-Assembler with instrustions from the SSE2 Instruction Set (SIMD) for this. This instructions use special 128bit registers (xmm registers) to perform parallel computations. But in Debug-Mode I can not monitor this registers...
Is there any way to watch the content of this registers in the "CPU Registers"-window?
kind regards
/David
P.S.: I'm using Win XP with C::B version 8.02 and the MinGW Compiler.
-
The only thing you can do to date is to send a user command (specifically, info vector) to the debugger manually.
Implementing this is troublesome since neither the presence, nor the number, nor the size, nor the semantics of vector registers are clearly defined on different CPUs under different operating systems, in different programs.
For example, a processor may have none, 8, or 16 SSE registers, and the OS may make none, 8, or 16 of them available. The application might use half of these registers to store unsigned bytes, and the other half to store floats (or anything else).
Putting all that into a non-redundant interface that works and is understandable was deemed too much hassle at the time of writing the debugger plugin.
-
Hi Thomas,
thank you very much for your fast response!
Honestly I have to say, that until now I had no idea of how the cpu-register-contents get into the window of the debugger plugin. :wink: And since the SSE/SSE2 Instruction set is supported by nearly all relevant CPUs since Pentium 4, I thought an implementation of this feature would be of no special difficulty. But of course your explanation makes sense. Thank you again for your fast and explicit answere.
I will use the chance to compliment you on the C::B IDE! I really love to use it. :)
kind regards
/David
-
If you find a solution to make the interface understandable and implementable without going through hell, then maybe we can implement it (or better even, maybe you can write a patch). There is really no "good" reason why it's not implemented, except for the pain of figuring out what's available and what are its semantics. The debugger doesn't know either, which is why it outputs such an awful lot of data when you do an info vector -- it simply outputs every possible binding.
-
I won't have the time for this in the next months, because I'm currently working on my Diplom-Thesis. (Thats what the whole FDTD-Stuff is for) So I guess I will have to do it without having this feature implemented in C::B, what will be absolutely possible.
The feature that I miss more, is that the disassembly window is "blank" text; most of all: does not indicate the current instruction pointer. I've seen pictures of Linux- or Mac-C::B where there's even syntax highliting and everything. So is there any way to have this for windows too? Some option I just did'nt see until now?
This is how my disassembly window looks like:
(http://img520.imageshack.us/img520/1460/disassemblych1.jpg)
(An other Topic where I asked this question remained unanswered.)
kind regards
/David