Can someone explain in detail the output of a task that generated an
exception,
i.e. something like this:
Exception number 1792: Task: 0x1e4aa910 (CTx)
program
Exception current instruction address: 0x1e498738
Machine Status Register: 0x0208b030
Condition Register: 0x84000044
18be474 __tf12CQs+918: Set__10CFrUl ([])
18ab130 Set__8CAntUl+3c : Set__8CAnt11e_ant_t ([])
program
Exception current instruction address: 0x1e498738
Machine Status Register: 0x0208b030
Condition Register: 0x84000044
Task: 0x1e4aa910 "CTx"
How "Exception number" can be used and where are the list of exceptions
numbers?
Also, apart of the "program counter" and it's use through lkAddr on the
shell, what are the uses of "machine status" and "Condition Register" .
O.S. : VxWorks 5.4
Development environment: Tornado 2.1 on WinNT 4
Thanks for your help in advance
Edy
The answers would depend on the hardware you are using. Consult the
manual for your CPU card.
Speaking only for myself,
Joe Durusau
First, it's obvious (by the numbers) to me you are running on a PowerPC.
But vxWorks runs on many different architectures. You should include the
target HW information, i.e. it's a PowerPC and which one. This may increase
the number of people who actually respond.
> Can someone explain in detail the output of a task that generated an
> exception,
> i.e. something like this:
>
> Exception number 1792: Task: 0x1e4aa910 (CTx)
I don't know why WRS prints the exception numbers in decimal. 1792 in hex
is 0x700. If you look in "The Green Book", aka Programming Environments for
32-bit Microprocessors, you will see that exception 0x700 is a "Program
Exception", in fact just like it says below.
> program
> Exception current instruction address: 0x1e498738
> Machine Status Register: 0x0208b030
> Condition Register: 0x84000044
> 18be474 __tf12CQs+918: Set__10CFrUl ([])
> 18ab130 Set__8CAntUl+3c : Set__8CAnt11e_ant_t ([])
And while you have The Green Book open, you can look up the definition of
the Machine Status Register in chapter 2, and read all about exceptions in
chapter 6.
> program
> Exception current instruction address: 0x1e498738
> Machine Status Register: 0x0208b030
> Condition Register: 0x84000044
> Task: 0x1e4aa910 "CTx"
It looks like the CTx task was doing some C++ and went into the weeds.
Could have been memory corruption at the above address, or something else -
you'll have to investigate. Chapter 6 will tell you all the various ways a
program exception can be generated.
> Also, apart of the "program counter" and it's use through lkAddr on the
> shell, what are the uses of "machine status" and "Condition Register" .
You'll also find the condition register documented in The Green Book.
hth,
Dan Gold go...@no-spam.ensemble.com
You'll find