This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Eclipse performance problems

Hello all,

I am getting extremely frustrated with DS-5 and Eclipse and it's connection to my target.

It is extremely slow, sometimes taking a few minutes to respond. Eclipse will sit at 100% utilization of a core, and apparently, be doing NOTHING.

Not only that, single stepping, memory viewing and pretty much anything takes a very long time.

Even initial startup takes a very, very long time.

This is, by far, one of the slowest debuggers I have ever used and I'm seriously considering not renewing any support contract with it.

Outline of setup:-

Marvell SoC system,

Connection via Ethernet, using gdbserver to debug an application,

JTAG is not available, due to encryption on JTAG port.

Target system is running linux 3.4.50, it's a dual core system running at 1GHz.

There may be a fundamental set up issue with DS-5 or Eclipse, if there is, I need to resolve this.

I would very much appreciate any assistance in diagnosing this problem. I need to debug my application, and this is not helping.

  • Hello all,

    Now that I've had a chance to step away from it for a while, I think I'll give some more details, maybe it's something odd with my setup. Sorry, can't give too many details of the target, but I'll try and give as much detail as I can.

    Target platform is dual core a9, connected to network via usb->ethernet adapter.

    JTAG is not available on that platform, due to encryption.

    Running a target, embedded style application, using gdbserver as the debug agent.

    DS-5 build 5190027 running on a quad core, reasonable performance, Windows laptop.

    Build environment is a virtualbox linux install.

    Source files are stored on the virtualbox image, accessed via CIFS share.

    Edited, typically, using Visual Studio.

    Debugged with Eclipse.

    I only use Eclipse when I need to debug the application. I have all the source paths set properly (they are on the network share); it loads vmlinux image, to get symbol table; loads the symbol table from the app; accesses whatever shared objects are used.

    The client will mount an nfs share, and execute gdbserver from the application build directory.

    The failure condition seems to occur very frequently, recently. And I am at a loss to where to start diagnosing the problem. But I have noticed the following:-

    Eclipse will sometimes use 25% of all compute resources (pegged out one core)

    Eclipse uses approximately 1GB of memory

    No project workspace is loaded, or set up with eclipse, just some debug targets.

    When eclipse has CPU pegged out, target system is, for all intents, sitting idle.

    Ethernet link is confirmed still active, by using ping. (we have had problems with some spurious reset of USB bus; causing network disconnect).

    Very few target windows are open (memory, disassembly are all closed) but the variables view is.

    Few general questions:-

    I have many problems when trying to set breakpoints. It can never seem to do it without stopping the target first.

    I often get threads stopping, spontaneously, with SIGCHLD signals, why?

    Is it possible to watch memory and expressions, while an application is running, without having to set breakpoints?

    What other connection options are available? I have heard something about a USB connection.

    Is there a debug stub that will work in kernel-space and be able to debug user-land applications?

    In general, single step speed seems very slow (~1 step/second). Whereas debugging under Visual Studio, single steps happen quite rapidly (almost auto-repeat rate). Can I do anything to speed this up, on Eclipse/DS-5?

    -> Eclipse freezes if a thread somehow goes in to 100% utilization (e.g. infinite loop).

    I'd really appreciate some help, here. No one at work uses Eclipse/DS-5.

    Keil is MUCH faster.

  • Hi,

    First off - sorry to hear you're having trouble with DS-5.

    The best bet is to get in touch with ARM support directly, where you would be able to share some more in-depth details of your setup. You mentioned you already had a support contract, so they will be able to work with you to identify exactly what is slowing things down with Eclipse.

    Looking at a point you mentioned, I'd suggest that if you're doing Linux application debug, you don't need to load the vmlinux symbols. This will save a lot of overhead and hopefully speed up the debugger.

    It's not possible to watch memory and expressions while an application is running, you'd need to stop the target.

    You also mention other connection options:

    Certain boards/devices make use of CMSIS-DAP as a way of carrying out bare-metal (not Linux application) debugging over USB - for example: Developer Resources / Tutorials / Vybrid Tower System Debug Session Tutorial | ARM DS-5 Development Studio

    USB with port forwarding can also be used for Android native application debugging, though I'm not sure about Linux applications. You could potentially also configure a TCP/IP connection over serial.

    Thanks,

    Joe

  • Hi there,

    Sorry to hear of your troubles, this is not typical of the many DS-5 users out there. To reiterate Joe's point above, loading of vmlinux symbols (i.e. the Linux kernel symbols) will have no relevance to an application running on that system. That being said, I would imagine the debugger would just error that these symbols don't match anything loaded.

    I wonder if you are seeing a curious incarnation of the issue discussed here?

    I (or the ARM support team) would be interested to see your Debug Configuration to see exactly how you are setting up the connection.

    Regards

  • I discovered the gdbserver running on the client was quite old. 7.6.50.20130601. I have updated it to the latest, and it seems to be functioning better.

    I've updated the gdbserver to 7.8.

    I will try it for a few days before filing the support request, it may have just been down to this.

    But, even besides this, I generally find Eclipse to be unacceptably slow. I *should* be able to single-step at auto-repeat rates. But there's no way it comes close to that. It seems to take almost 300ms to update the display.

    Brian.