Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[Cdt-launch-inbox] [Bug 196885] New: Debugger panel's CPU validation causes horrifying slowdowns when target file is on a network drive

https://bugs.eclipse.org/bugs/show_bug.cgi?id=196885 
Product/Component: CDT / cdt-launch

           Summary: Debugger panel's CPU validation causes horrifying
                    slowdowns when target file is on a network drive
           Product: CDT
           Version: 4.0
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P3
         Component: cdt-launch
        AssignedTo: cdt-launch-inbox@xxxxxxxxxxx
        ReportedBy: dporges@xxxxxxxxxxxxxxx


Build ID: I20070621-1340

Steps To Reproduce:
(CDT 4, WinXP/Cygwin)

1. Have a project that points to files on a network file system, as opposed to
a project on a local disk, or in a local workspace.
2. Have a large target executable, specifically one with numerous sections (elf
sections, in my case)
3. ANY operations in the Debugger configuration panels -- including typing into
the Arguments box -- causes each character to be very slowly echoed.  Like, 10
seconds per character.


More information:
Some trace analysis shows that any event in CArgumentsTab, for instance,
bubbles up through some LaunchConfigurations* classes and eventually into
CMainTab.isValid(), which wants to verify that the cpu and debugger match,
which eventually causes a new Elf object to be created and its header, and then
its sections table, to be read.  On _every_ _single_ _character_ _typed_.  

Oh, and because the underlying java.io class RandomAccessFile is unbuffered, on
Windows the elf file is being read one character at a time, at the system-call
level -- this was seen by using the "procmon" tools from Sysinternals.  There
are a couple of places in ERandomAccessFile when multiple calls to
RandomAccessFile.read() (of a single byte each) seem like they could be done
with one of the multiple-byte calls available, but maybe there are platform
alignment issues to some such thing that make that a bad idea, and it's realy
the least of the trouble.  Adding some buffering to ERandomAccessFile might
make this all go away.



-- 
Configure bugzilla e-mail: https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


Back to the top