I'm trying out the new interactive debugger available in SAS EG 7.13. I can't seem to set a break point. I'm running as I say SAS EG 7.13 on a Windows 7 machine. My SAS server is an AIX server running SAS 9.3 TS1M2
Any time I try to set a break point, even on the line currently being executed in the debugger, I get the message: "line number N out of range for compiled source" (where "N" is the line number). See code snippet below.
I can see by virtue of the yellow highlighting in the Debug display window that the program has stepped to line 65. I get the message in the Debug Console "Stepped to lin 65 in column 3". If however I press F9 (or use my mouse) to set a breakpoint, I get the message "Line number 65 out of range for compiled source."
I also can't get it to work with any program with an INPUT statement.
Has anyone else experienced this? Is this just a 9.3 compatibility problem? Do I just need to upgrade to 9.4?
Jim
Jim,
Thanks for providing clear and easy steps to reproduce! I am able to consistently reproduce with the steps you provided. This looks to be an issue on the server side as I can also reproduce the problem in the DATA step debugger in Display Manager. I'll enter a defect in our tracking system.
Thanks,
Casey
Register today and join us virtually on June 16!
sasglobalforum.com | #SASGF
View now: on-demand content for SAS users
Hi Jim,
Can you attach some example code that reproduces the problem for you? We would like to try to reproduce.
Thanks,
Casey
Register today and join us virtually on June 16!
sasglobalforum.com | #SASGF
View now: on-demand content for SAS users
Hi, Casey,
Yes, of course. I'm in a series of meetings this morning, but I should be able to put something together late afternoon, West Coast time. I'll try to use one of the SAS data sets that are shipped with SAS.
Jim
@CaseySmith, sorry to not get back to you sooner. I noticed that the problem appeared to be intermittent. I couldn't immediately identify what was causing it. We also had a pretty big deadline last week.
Anyway, what causes SAS to issue the "the line out of range" error message in the debugger is the use of a macro variable on the DATA statement. If you were to take a look at the little mini program, below, you'll see three versions of the DATA step.
Setting break points works just fine if you either a) hard code the output SAS dataset or b) use DATA _NULL_. If however one wishes to pass in the output SAS dataset name dynamically via a macro variable, the interactive debugger -- consistently -- does not permit one to set break points.
Perhaps this is expected behavior; I don't know. It is however a bit limiting inasmuch as many of our programs use macrovariables in the DATA statement.
Thanks,
Jim
/*-------------------------------------------------------------------------------------------------*/
/* Program: Debug_Tester
/* Author: Jim Barbour
/* Date: 19 December 2016
/* Run Time: Less than 5 minutes.
/* Remarks: This program exists only to test the new SAS EG interactive debugger.
/*-------------------------------------------------------------------------------------------------*/
TITLE;
*--------------------------------------------------------------------------------------------------*;
%*LET In_Obs = 9;
%LET In_Obs = MAX;
* ----+----1----+----2----+----3--;
%LET SAS_Data = Baseball;
%LET Out_Data = Baseball_Los_Angeles_Only;
*--------------------------------------------------------------------------------------------------*;
%LET SAS_Lib = /sas/sas_9.4/install/SASFoundation/9.4/sashelp;
%LET Out_Lib = /work01/c10757a;
*--------------------------------------------------------------------------------------------------*;
LIBNAME SAS_Lib "&SAS_Lib";
LIBNAME Out_Lib "&Out_Lib"; ** Output Library **;
*-------------------------------------------------------------------------------------------------*;
PROC OPTIONS OPTION=WORK;
RUN;
*--------------------------------------------------------------------------------------------------*;
/*DATA _NULL_;*/
/*DATA Out_Lib.Baseball_Los_Angeles_Only;*/
DATA Out_Lib.&Out_Data;
SET SAS_Lib.&SAS_Data
(OBS=&In_Obs)
END=End_of_File
;
IF Team = "Los Angeles";
RUN;
Jim,
Thanks for providing clear and easy steps to reproduce! I am able to consistently reproduce with the steps you provided. This looks to be an issue on the server side as I can also reproduce the problem in the DATA step debugger in Display Manager. I'll enter a defect in our tracking system.
Thanks,
Casey
Register today and join us virtually on June 16!
sasglobalforum.com | #SASGF
View now: on-demand content for SAS users
Thanks, Casey. That's good news to me that this is not how the Debugger is designed to work. It's very limiting to have to exclude macro variables from the data set names in a multi step program!
Would you like me to mark your reply as the resolution or should we await a true resolution re the tracking system?
Jim
@jimbarbour, I'd probably go ahead and mark it as the resolution, since it certainly appears to be a bug (and no telling if or when at this point there will be true resolution). However, once the responsible developer has a chance to investigate in more detail, there may be more info I can share. I'll try to followup if there are any significant updates for this issue in the tracking system.
Casey
Register today and join us virtually on June 16!
sasglobalforum.com | #SASGF
View now: on-demand content for SAS users
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.