200{
201 int bp=0;
202 if ((len>1)
205 )
206 {
208 {
212 {
214 }
216
220 Print(
"<<\nbreakpoint %d (press ? for list of commands)\n",bp);
224 {
226 }
229 {
230 case '?':
231 case 'h':
232 {
234 "b - print backtrace of calling stack\n"
235 "B <proc> [<line>] - define breakpoint\n"
236 "c - continue\n"
237 "d - delete current breakpoint\n"
238 "D - show all breakpoints\n"
239 "e - edit the current procedure (current call will be aborted)\n"
240 "h,? - display this help screen\n"
241 "n - execute current line, break at next line\n"
242 "p <var> - display type and value of the variable <var>\n"
243 "q <flags> - quit debugger, set debugger flags(0,1,2)\n"
244 " 0: stop debug, 1:continue, 2: throw an error, return to toplevel\n"
245 "Q - quit Singular\n");
248 {
250 Print(
"breakpoint %d at line %d in %s\n",
252 }
253 break;
254 }
255 case 'd':
256 {
257 Print(
"delete break point %d\n",bp);
259 if (bp!=0)
260 {
262 }
263 break;
264 }
265 case 'D':
267 break;
268 #if 0
269 case 'l':
270 {
273 break;
274 }
275 #endif
276 case 'n':
278 return;
279 case 'e':
280 {
283 return;
284 }
285 case 'p':
286 {
293 else
294 {
301 }
302 break;
303 }
304 case 'b':
306 break;
307 case 'B':
308 {
310 Print(
"procedure `%s` ",
p);
312 break;
313 }
314 case 'q':
315 {
318 {
321 }
322 return;
323 }
324 case 'Q':
326 case 'c':
327 default:
328 return;
329 }
330 }
331 }
332}
Class used for (list of) interpreter objects.
char *(* fe_fgets_stdin)(const char *pr, char *s, int size)
const char * Tok2Cmdname(int tok)
idhdl ggetid(const char *n)
void PrintS(const char *s)
BOOLEAN sdb_set_breakpoint(const char *pp, int given_lineno)
void sdb_edit(procinfo *pi)
static char * sdb_find_arg(char *p)
int sdb_checkline(char f)
STATIC_VAR char sdb_lastcmd