[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [cdt-dev] Target stream output is not written to console on linux
|
Hi,
Are you using a custom launch configuration? You need
to create a new Process to be the 'debugeeProcess' for the launch. This will tie
the target's output to a Console. Something like this should do the
trick:
<... Set configuration ...>
//Process created for I/O
console
Process process =
target.getProcess();
IProcess iprocess =
null;
if (process != null)
{
iprocess =
DebugPlugin.newProcess(launch, process,
renderProcessLabel(exeFileInfo.getPath().toFile().getName()));
}
CDIDebugModel.newDebugTarget(launch,
projectInfo,
dtargets[i],
renderTargetLabel(debugConfig),
iprocess,
exeFileInfo, true,
true, stopSymbol, false);
...
James
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