Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Freeze / Deadlock in GdbMemoryBlock.fetchMemoryBlock

Hello there,

I'm currently playing around with the CDT/Eclipse plugin functionalities. Now, I am at the point where I am a little bit desperate how to proceed - being overwhelmed by the huge API. 

My current goal: add a MemoryView that fetches data from the GDB connection to a remote host, convert it to image data and siplay it in the memory view pane. Sadly, I'm not able to fetch enough data to achieve this - I always get stalls/freezes when asking for more than 32K, which will easily be beaten by even small images. The stack is this:

Object.wait(long) line: not available [native method]	
Query$QueryRm(Object).wait() line: 485 [local variables unavailable]	
GdbMemoryBlock$1(Query<V>).get() line: 105	
GdbMemoryBlock.fetchMemoryBlock(BigInteger, long) line: 176	
GdbMemoryBlock(DsfMemoryBlock).getBytesFromAddress(BigInteger, long) line: 310	
GdbMemoryBlock(DsfMemoryBlock).getBytesFromOffset(BigInteger, long) line: 275	

- it is simply whaiting for ever for a request to be done 

while (!isDone()) {
     fRm.wait(); 
 }

I already tried to 
- split the fetchMemoryBlock-Calls to 4K units
- shift the base-address of my IMemoryBlockExtension during the loop
- inserting Thread.sleep in the loop

Also, I'm currently tinkering the addresses by using manual memory offsets in the style of 

adress += sizeof(CTypes.kCType_int, baseSize);
int pitch = toInt(block.getBytesFromAddress(new BigInteger(adress .toString()), sizeof(CTypes.kCType_int, baseSize)));

which is ugly and not very reliable - is there a way to use the debug information that must be available to retrieve the correct variable data as it is shown in the Variables-View?

Sorry if I mixed up two topics with one mail. 

Thanks in Advance,

Tobias


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
NSM-LOEWEN ENTERTAINMENT GmbH
Saarlandstrasse 240, 55411 Bingen am Rhein
Postanschrift: Postfach 1564, 55385 Bingen
Tel.: +49 6721 407-0
E-Mail: info@xxxxxxxxx
Web: http://www.loewen.de 
Geschaeftsfuehrer: Christian Arras (Vorsitzender), Willi Granold
Vorsitz im Aufsichtsrat: Dr. Theo Waigel
Amtsgericht Mainz, HRB 23327 
USt-Id.-Nr. DE 148266135



Back to the top