This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UIA Bugs (RC1 & RC2)

Expert 2430 points

Since RC1, JTAGSTOPMODE (for the event upload mode) has no effect.

LoggingSetup.eventUploadMode = LoggingSetup.UploadMode_JTAGSTOPMODE;

It's always in operating in JTAGRUNMODE mode.

Undoubtedly related, the Pause/Resume Transfer toolbar button is also permanently grayed out:

 

(And please don't ask me to create a new workspace like you always do [and which never fixes the problem].  Workspaces, by definition, are heavily customized--at least mine are since I don't like 80% of your "default" settings--so to throw it away and recreate is not a minor endeavor.  You can ask me to delete specific UIA/DVT related directories and configuration files--I'm fine with that--but don't ask me to throw away my entire workspace.)

  • Also, since the time I started using the MSA tool, the following has been a major annoyance.  I know that at its core, this is an Eclipse/Java thing, but you can guard against this in the MSA plug-ins (that you write and install).

    I am constantly running out of heap or getting other memory related Java exceptions whenever I have an MSA session up and restart the application (and MSA session).

    It's either this or a "Negative Array Index" exception.  This will start happening after 3-5 restarts.

    Increasing Java's heap (via the .ini file) helps alleviate the exceptions, but then what happens is the log window just starts showing empty entries.  Clicking on the entry will usually display the text, but only that entry's text; if I click another entry, the current entry goes blank again and the new entry is displayed.  Bottom-line, there is a major memory management problem going on.

    Again, the root of this evil is Java and it's horrible memory management capabilities, but since you wrote the Java code (i.e., the plug-in), you can certainly address this and guard against it I would think.

  •  

    This was just after two restarts.

    First Pass:  29 log messages (only main logger enabled, mind you)
    <edit code, recompile/reload, restart>
    Second Pass:  29 log messages
    <edit code, recompile/reload, restart>
    Third Pass:  20 log messages (should be 29) and the above exception.

    As much as I hate Java, I can't really blame this on it.  There is just some bug (major, major memory leak or the like) in the MSA plug-in that's related to restarting the MSA session.

  • And finally, and example of null log entries:

    The sixth entry is missing, and here clicking on the entry did not force it to be drawn (unfortunately).

  • Hi Alex,

    Please send us the .log file located in <workspace_location>\.metadata.

    Thanks,

    Oliver

     

  • 2063.log.zip

    This is a log from today here at work.  At the end, you will see an IndexOutOfBoundsException.  It should be noted, though, that I did not actually get notified of the exception.  This was a case where I was just getting null log messages as described above.

    Tonight, when I get home, I'll upload my logs from all the above posts.

    It should also be noted that here at work this morning, I fully uninstalled all things CCS (and manually deleted all your hidden directories), ran ccleaner to remove all the leftover TI keys, and then install CCSv.5.1 (RC2) fresh.  Here, I didn't create a new workspace (just deleted the dvt directory), but I did at home, and as I predicted, it didn't make a difference.

  • Alex,

    Thanks, the log provided some useful information. I'm looking into the issue.

    Regards,

    Oliver

     

  • Okay, apparently, these errors generate a lot of trace output because CCS hit its 1 MB threshold several times this weekend causing it to make a backup and clean the slate.  Attached are all the logs from this weekend.  All the above errors I posted can be found in there... somewhere. :-)

     

    3632.log.zip

  • So is this really being looked into I hope?  I received the e-mail today about RC2 becoming the official release build, and frankly, the UIA has been unusable.  Every single session if I don't get the exception, I always get empty log messages.  (Diagnostic messages don't help much if you can't see them. ;-) )

  • Hi Alex,

    I filed SDSCM00042361 for this issue. The problem is that the System Analzyer Logs view may show empty records, cause IndexOutOfBounds or OutOfMemoryError after doing the Clear Log View or Restart. This will be fixed in the next service release. The workaround for now is to remove the System Analyzer session and re-launch it.

    Regards,

    Oliver

     

  • Regarding your workaround, I always try that, and it never works.  The only thing that makes the MSA log window functional again is a complete shutdown of Eclipse.

  • Alex,

    Sorry, my workaround wasn't clearly stated. Don't use Clear Log View or Restart, instead Remove the System Analyzer session and re-launch it. If you did do Clear Log View or Restart, you may have to close CCS and re-start it to get into a good working state again. 

    Regards,

    Oliver

     

  • Ah, okay.  Makes sense.  Of course, that's going make development and debugging slow, torturous, and extremely aggravating, so can you give me a ballpark (I know you'll just be guessing) ETA when the update will be released?

    Also, what about being unable to run in JTAGSTOP mode?  Any workaround for that?

  • Hi Alex,

       I did some tests on the C6472 and it looks like JTAGSTOPMODE is working as expected.  There's a useful utility called the UIA Transport Monitor that shows all of the loggers that the JTAG transport is interfacing with available from the CCS main menu (Windows / Show Views / Other... / UIA / UIA Transport Monitor) .   Selecting a CPU in the Debug View will cause the UIA Transport Monitor to show the Loggers for the selected CPU. 

    Here's what it shows for an application with LoggingSetup.eventUploadMode = LoggingSetup.UploadMode_JTAGRUNMODE :

    And here's what it shows for the same application with  LoggingSetup.eventUploadMode = LoggingSetup.UploadMode_JTAGSTOPMODE :

    The main thing to note is the Module Name: ti.uia.runtime.LoggerCircBuf is the logger used to capture and upload data while the target is running, whereas ti.uia.runtime.LoggerStopMode is the logger used to capture data while the target is running and upload it only when the target has halted.   From this, you can see that the UploadMode_JTAGSTOPMODE does cause the correct type of loggers to be used for the application.  Also, in my test application, data upload only occurs on halt.  Is this different than what you are seeing?  

    Do you think the problem with the pause / resume transfer operation that Oliver outlined was making it look like there was a problem related to the UploadMode...?  If not, could you post a screenshot of what the UIA Transport Monitor shows for your application and, if possible, your .cfg file so I can get a better understanding of the problem you are seeing?

    Thanks

      Brian

  • Well, I don't know.  I have three independent workstations (at my desk, in the lab, and at home), each with their own workspace (obviously), and they all act the same.

    Also, my UIA Transport Monitor view is empty:

    But sometime between last night and today, I am no longer getting any messages at all because it's in a perpetual "Warning: Waiting UIA SyncPoint data" state.  The blank monitor view is probably related to that.  I don't know.

  • Hi Alex,

        Re: my UIA Transport Monitor view is empty:

    I haven't seen that before.  It's not related to the 'waiting for sync point data'.  Could you please post your .cfg file (or at least the uia-related parts of it) so that I can try to reproduce it here? 

     Re: But sometime between last night and today, I am no longer getting any messages at all because it's in a perpetual "Warning: Waiting UIA SyncPoint data" state. 

    I believe that what is happening is that sync point events are being uploaded by one System Analyzer session, and then there are no sync point events for subsequent System Analyzer sessions to work with.  (either that or your application is not actually logging the sync point events.)

    The systemAnalyzerLogSync.gel file in http://processors.wiki.ti.com/images/8/8e/Tutorial4B_JTAGRunMode.zip allows you to 'poke' a CPU to log a sync point event.  Please see http://processors.wiki.ti.com/index.php/System_Analyzer_Tutorial_4B#EnablingMulticoreEventCorrelation for a complete description of how it works.  This should you get past that Warning message. 

    I hope this helps.

    Regards,

      Brian