Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
RENESAS TOOL NEWS on October 1, 2008: 081001/tn3

A Note on Using High-performance
Embedded Workshop
--With Referencing Local Variables--


Please take note of the following problem in using High-performance Embedded Workshop:
  • With referencing local variables
High-performance Embedded Workshop is bundled with the compilers and other software products that it manages.

1. Product and Versions Concerned
   All the versions of High-performance Embedded Workshop up to V.4.04.01

2. Description
   When a local variable is referenced, an application error may arise.

2.1 Conditions
    This problem may occur if the following conditions are all satisfied:

    (1) The product is used with any of the following debugger products:
         - The simulator debugger for the SuperH RISC engine family
         - The simulator debugger for the H8SX, H8S, and H8 families
         - E8a Emulator Software
         - E8 Emulator Software
         - E10A-USB Emulator Software 
         - E10T-USB Emulator Software 
         - E200F Emulator Software 
         - E6000H Emulator Software 
         - E6000 Emulator Software 

    (2) A member of a structure or union is declared to be an array type 
        of 400 bytes or more in size.

    (3) The structure or union in (2) is defined as a local variable.

    (4) The variable in (3) is referenced by using any of the following 
        windows and functions:
         - The Stack Trace window
         - The Locals window
         - The Watch window
         - The Tooltip Watch function
         - The Instant Watch function

2.2 Example
    For example, if a structure variable "lS" is defined to be a local 
    variable as shown below, and the variable 
    is referenced by using the Locals, Watch, or Stack Trace window, 
    an application error may arise.

    ------------------------------------------------------
    struct Str {
        short m_DataSize;
        char  m_Data[512];      /* Condition (2) */
    };

    main() {
        struct Str lS;         /* Condition (3): Structure defined
                                                 as local variable "lS" */
        lS.m_DataSize = 512;
        return;
    }
    -----------------------------------------------------

3. Workaround
   This problem can be avoided as follows:

   (1) For the Stack Trace and Locals windows
       If the program counter is pointing to any location inside the 
       function in which the variable to reference is defined, display 
       neither of these windows.

   (2) For the Watch window
       Do not register the variable to reference with this window.

   (3) For the Tooltip Watch function
       Do not use this function to reference any local variable.

   (4) For the Instant Watch function 
       Do not use this function to reference any local variable.

4. Schedule of Fixing the Problem
   We plan to fix this problem in the next release of the product.



© 2008. Renesas Technology Corp., All rights reserved. Privacy | Legal