× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I also set up a Service Entry Point in RDi (thanks Charles for the
suggestion) and that works pretty well. I set the SEP based on a specific
user, and then have the PHP user use that debug userid. I debug a
procedure, and it breaks and pops up the source in the debug perspective in
RDi when that procedure is accessed. I then step through and am able to set
breakpoints, monitor variables, etc.

On Mon, Apr 4, 2016 at 12:43 AM, Alan Seiden <alan@xxxxxxxxxxxxxx> wrote:

Michael,

The trick to debugging RPG programs from stateless toolkit jobs (that run
in QSQSRVR) is the ‘*debug’ control key. Instructions below excerpted from
my PHP toolkit presentation (http://www.alanseiden.com/presentations/ <
http://www.alanseiden.com/presentations/>):

1. Add the following line to your PHP script before the program call to be
debugged. $toolkitConn should be your toolkit connection object.

$toolkitConn->setOptions(array('customControl'=>'*debug'));
Run your script. The script will "hang" while it waits on #2 below...(move
to green screen 5250 for steps 2-10)

2. A MSGW inquiry message in DSPMSG QSYSOPR will be generated by the
toolkit.

3. Note the job information (number, name, user) provided in the MSGW.

4. STRSRVJOB using that job information as parameters.
5. STRDBG with the program and library you wish to debug.

6. Answer the MSGW. Any answer will do--"G" is fine.
7. The RPG program source will appear in debug mode in your terminal,
ready to step through, allowing you to inspect variables, etc.
8. When done inspecting and stepping, let the RPG program complete (using
function keys indicated on screen).
9. ENDDBG
10. ENDSRVJOB

Alan
--
Alan Seiden Consulting LLC

Project leader, Zend PHP Toolkit for IBM i
Zend Framework certified contributor

Office: 201-447-2437 Cell: 201-248-4704
http://www.alanseiden.com | alan@xxxxxxxxxxxxxx
http://twitter.com/alanseiden

On Mar 28, 2016, at 9:52 AM, Michael Ryan <michaelrtr@xxxxxxxxx> wrote:

I need to occasionally debug the PHP script->i program interaction,
especially when I need to see parameters being passed or to trace logic
flow. When I run in stateful more, I'm able to use STRSRVJOB on the
Toolkit
job, and then STRDBG on the program or service program. However, when I
use
stateless mode, the job uses a QSQSRVR job and I don't know which one
will
be used.

I was thinking I could have the PHP script send a SNDMSG command with an
*INQ so I could identify the QSQSRVR job being used. This works, but the
PHP script doesn't 'pause' and wait for the response. So then I thought I
could use SNDPGMMSG, specify a key variable, then use RCVMSG for an *INQ
type with that MSGKEY.

Anyone have any hints for this type of debugging interaction? Cross
posted
to midrange and web since it has a MSG question as we as a PHP technique.
Thanks!
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.