[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ptp-dev] debug output question
|
have this working now ... there is a few minor things to fix (one of
them being console if MI DEBUG flag is on, then the stdout messages are
being printed twice as I use ReadResponse for getting the response).
I will open a feature request bug id and have it reviewed.
Thanks,
Feiyi
Greg Watson wrote:
On Oct 5, 2007, at 4:06 PM, Feiyi Wang wrote:
hmm ... the status now is, I have done the pseduo terminal stuff, and
keep the master in the parent, slave in the child, and am getting
stdout through MI (as shown by MI RECV). It is missing the @ I was
expecting, I am guessing it is filtered because I didn't set tty in
raw mode, but that is all right. I make the callback directly:
The @ is only added by gdb to the MI target output stream. When using
-tty the application output is sent directly to the pseudo terminal.
if (sess-> target_callback != NULL)
sess -> target_callback(str);
instead of DoOOBStreamOutput() since the data now is string type and I
don't need to construct the MIOutput record again (there might be
other implications by not doing that, but for now ...). Target
callback is done to stdout the string. However, However, it is not
being picked up.
Now, I am looking at debug_app_job_state_callback() to see if I did
the right thing - two questions:
(1) in addition to registering IO forwarding, should I check for job
state, and invoke sendProcessStateChangeEvent() as needed? as did in
job_state_callback() for normal launch?
No. For a debug job, the debugger controls the process state in the UI.
This is because states such as SUSPENDED are only known by the debugger.
You still have to manage the *job* state however. This is already done
in debug_job_state_callback().
(2) job_state_callback do j = find_job(jobid, JOBID_ORTE); to locate
job id, I saw two other constants defined JOBID_PTP and JOBID_DEBUG -
what are the intended use?
A debug launch actually creates two different ORTE job IDs, the debugger
and the application being debugged. However in Eclipse, we are only
interested in seeing the application (for state changes, etc.), and we
don't want to see the debugger in the runtime UI. The ptp_job structure
is used to maintain a mapping between three job IDs: the job ID of the
combined debug/application job as known by the UI, the ORTE job ID of
the debugger and the ORTE job ID of the application (in the case of
non-debug jobs, the debug job ID is -1). When communicating with the UI,
the ptp_jobid is always used. When communicating with ORTE, the
debug_jobid or orte_jobids are always used. The JOBID_XXX constants are
used to look up an internal job structure given the corresponding job
ID. So, for example, if you have the ORTE job ID of the debugger, you
can find the job by specifying JOBID_DEBUG when calling find_job().
Greg
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev