[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [cdt-dev] Target stream output is not written to console on linux | 
Hello
  When I debug applications on emulation hardware the application's output  are missing  on the console in linux cdt.   But in the case of   windows this works perfectly  fine .  Has any body else faced this problem ? 
 
 When I debugged  the cdt code what I found is that  these target output stream are processed as  out of band records and send to the  console  through  the PipedOutput stream. The following code in RxThread does this 
---------------------------
if (stream instanceof MITargetStreamOutput) {
            OutputStream target = session.getMIInferior().getPipedOutputStream();
            if (target != null) {
                MITargetStreamOutput out = (MITargetStreamOutput) stream; 
                String str = out.getString();
                if (str != null) {
                    try {
                        target.write(str.getBytes());
                        target.flush();
                    } catch (IOException e) { 
                    }
                }
            }
            // Accumulate the Target Stream Output response for parsing.
            // Some commands, e.g. 'monitor' will put valuable info  in the Console Stream. 
            // This fixes bug 119370.
            oobList.add(stream);
        } 
----------------------------------------------------
 
In the case of linux I  found that 
OutputStream target = session.getMIInferior().getPipedOutputStream();  comes null  since target is null it is never written .  In case of windows the target is valid and it writes and the output  is appearing .
 
I understand that there  is difference in the way in which MIInferior object created in Linux and windows.   
 
Any idea how to approach this  problem ?
 
Thanks
Shaiju.P