|
Currently debugging UDFs doesnt work. I have had the same problem. - seemy original post.
debugged; i.e.
I have no resolution to the issue.
Sent from my iPhone
On Mar 7, 2013, at 4:39 PM, "Thomas Garvey" <tgarvey@xxxxxxxxxx> wrote:
Yes.
Specifically, I start the debug (STRDBG) using the program name
running in the submitted job, then I add the service program as a
called module inside the debug session (using F14 to display module
list, then option 1 to add the service program). I then set the
breakpoints in the module of the service program. I set the break at
the first executable line (there is no initialization subroutine).
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Peter Connell
Sent: Thursday, March 07, 2013 4:13 PM
To: Midrange Systems Technical Discussion
Subject: RE: Help with debugging external UDF
Thomas,
Just to be certain.
You are submitting a job which at some point runs the UDF.
You are running STRSRVJOB from a command line that specifies the
submitted job as the targeted job.
You are running the STRDBG SRVPGM(DT2ISOSRV) from the command line to
debug the *SRVPGM program containing the UDF (note the use of the
SRVPGM keyword instead of the PGM keyword on STRDBG)
Peter
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Thomas Garvey
Sent: Friday, 8 March 2013 11:03 a.m.
To: 'Midrange Systems Technical Discussion'
Subject: RE: Help with debugging external UDF
Finally got back to this after a few days...
I executed a DROP function command and then a CREATE FUNCTION,
verified the function is defined in my library (using Navigator).
Here's the CREATE...
CREATE FUNCTION GARVEY/DT2ISOSRV (
TESTVALUE VARCHAR(50) ,
DATEFMT VARCHAR(4) )
RETURNS DATE
LANGUAGE RPGLE
SPECIFIC GARVEY/DT2ISOSRV
NOT DETERMINISTIC
NO SQL
CALLED ON NULL INPUT
NO EXTERNAL ACTION
NOT FENCED
EXTERNAL NAME 'GARVEY/DATE2ISO(DATE2ISO)'
PARAMETER STYLE GENERAL ;
I am trying to debug the function when it gets called by SQL, so I am
adding the Service Program (DT2ISOSRV) to my program list and setting
a break point (in DATE2ISO module). I know the function is getting
called because my job log is filled up with messages that the calls
to CEEDATE (which is called from within the function) are failing...
For example...
Timestamp picture mismatch.
The value for month is not valid.
The problem is that I can't get it to stop at my breakpoints. I
suppose that I am probably setting breaks in something OTHER than
what is actually being called, but I thought I dealt with that by
dropping the function and then CREATEing it again.
I did look at the SYSFUNCS and SYSROUTINES files and everything looks
correct.
Any thoughts?
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of CRPence
Sent: Monday, March 04, 2013 5:38 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: Help with debugging external UDF
On 04 Mar 2013 14:37, Thomas Garvey wrote:
<<SNIP>>
The system does call something because each step of the original
program returns a zero in SQLCOD, AND it returns a value from the UDF.
The problem is the value is wrong and I can't get to debug the
service program to find what is going wrong.
I am not sure I understood what was being done to effect debugging,
but it seems what is described for the batch job attempts to suggest
that the UDF code being run in the batch job, is not the code being
function defines to be invoked.the breakpoint in the code chosen to debug was never hit.
For that... The output from a TRCJOB would show what specific code
was being run; and presumably would be again on the next run.
Consider that the library list is less relevant if the SQL PATH is
not *LIBL, and furthermore if the EXTERNAL NAME for the routine
directs to a specific [a qualified] service program name [which could
be outside of the library list]. What specific version of the
function being invoked is the first thing to determine, then what that
SYSROUTINES.Library qualifying the function is best to ensure the former, and
that also makes finding-out the latter easier, by a very specific
query of the catalogs.
The CREATE FUNCTION was not offered nor any variants either for
SPECIFIC name or SOURCED; i.e. there might be overloaded or effective
duplicates defined. Verify the routine definition(s) in SYSFUNCS or
http://archive.midrange.com/midrange-l.
--
Regards, Chuck
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
are not the intended recipient.
#####################################################################
#######
#########
This correspondence is for the named person's use only. It may
contain confidential or legally privileged information, or both. No
confidentiality or privilege is waived or lost by any
mistransmission. If you receive this correspondence in error, please
immediately delete it from your system and notify the sender. You
must not disclose, copy or rely on any part of this correspondence if you
http://archive.midrange.com/midrange-l.Any views expressed in this message are those of the individual
sender, except where the sender expressly, and with authority, states
them to be the views of Veda.
If you need assistance, please contact Veda on either :- Australia
1300-762-207 or New Zealand +64 9 367 6200
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
--
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
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.