Mercurial > octave
comparison src/toplev.cc @ 9990:2b008f1d3794
octave_call_stack::do_goto_frame_relative: stop searching at top frame
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 15 Dec 2009 16:02:48 -0500 |
parents | 692ab4eaf965 |
children | 2cd940306a06 |
comparison
equal
deleted
inserted
replaced
9989:d36f8c473dff | 9990:2b008f1d3794 |
---|---|
385 | 385 |
386 const call_stack_elt& elt = cs[frame]; | 386 const call_stack_elt& elt = cs[frame]; |
387 | 387 |
388 octave_function *f = elt.fcn; | 388 octave_function *f = elt.fcn; |
389 | 389 |
390 if (f && f->is_user_code ()) | 390 if (frame == 0 || (f && f->is_user_code ())) |
391 { | 391 { |
392 if (nskip > 0) | 392 if (nskip > 0) |
393 nskip--; | 393 nskip--; |
394 else if (nskip < 0) | 394 else if (nskip < 0) |
395 nskip++; | 395 nskip++; |
401 | 401 |
402 symbol_table::set_scope_and_context (elt.scope, elt.context); | 402 symbol_table::set_scope_and_context (elt.scope, elt.context); |
403 | 403 |
404 if (verbose) | 404 if (verbose) |
405 { | 405 { |
406 tree_statement *s = elt.stmt; | 406 std::ostringstream buf; |
407 int l = -1; | 407 |
408 int c = -1; | 408 if (f) |
409 if (s) | 409 { |
410 { | 410 tree_statement *s = elt.stmt; |
411 l = s->line (); | 411 |
412 c = s->column (); | 412 int l = s ? s->line () : -1; |
413 } | 413 int c = s ? s->column () : -1; |
414 | 414 |
415 std::ostringstream buf; | 415 buf << f->name () << ": " << " line " << l |
416 buf << f->name () << ": " << " line " << l | 416 << ", column " << c << std::endl; |
417 << ", column " << c << std::endl; | 417 } |
418 else | |
419 buf << "at top level" << std::endl; | |
418 | 420 |
419 octave_stdout << buf.str (); | 421 octave_stdout << buf.str (); |
420 } | 422 } |
421 | 423 |
422 retval = true; | 424 retval = true; |