201{
202 int bp=0;
203 if ((len>1)
206 )
207 {
209 {
210 char gdb[80];
211 char *
p=(
char *)currLine+len-1;
212 while ((*
p<=
' ') && (
p!=currLine))
213 {
215 }
216 if (
p==currLine)
return;
217
220 fwrite(currLine,1,len,stdout);
221 Print(
"<<\nbreakpoint %d (press ? for list of commands)\n",bp);
225 {
227 }
230 {
231 case '?':
232 case 'h':
233 {
235 "b - print backtrace of calling stack\n"
236 "B <proc> [<line>] - define breakpoint\n"
237 "c - continue\n"
238 "d - delete current breakpoint\n"
239 "D - show all breakpoints\n"
240 "e - edit the current procedure (current call will be aborted)\n"
241 "h,? - display this help screen\n"
242 "n - execute current line, break at next line\n"
243 "p <var> - display type and value of the variable <var>\n"
244 "q <flags> - quit debugger, set debugger flags(0,1,2)\n"
245 " 0: stop debug, 1:continue, 2: throw an error, return to toplevel\n"
246 "Q - quit Singular\n");
249 {
251 Print(
"breakpoint %d at line %d in %s\n",
253 }
254 break;
255 }
256 case 'd':
257 {
258 Print(
"delete break point %d\n",bp);
260 if (bp!=0)
261 {
263 }
264 break;
265 }
266 case 'D':
268 break;
269 #if 0
270 case 'l':
271 {
272 extern void listall(int showproc);
274 break;
275 }
276 #endif
277 case 'n':
279 return;
280 case 'e':
281 {
284 return;
285 }
286 case 'p':
287 {
294 else
295 {
297 memset(&tmp,0,sizeof(tmp));
302 }
303 break;
304 }
305 case 'b':
307 break;
308 case 'B':
309 {
311 Print(
"procedure `%s` ",
p);
313 break;
314 }
315 case 'q':
316 {
319 {
322 }
323 return;
324 }
325 case 'Q':
327 case 'c':
328 default:
329 return;
330 }
331 }
332 }
333}
Class used for (list of) interpreter objects.
void Print(leftv store=NULL, int spaces=0)
Called by type_cmd (e.g. "r;") or as default in jPRINT.
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