summaryrefslogtreecommitdiffhomepage
path: root/src/backtrace.c
AgeCommit message (Collapse)Author
2017-06-02Make `break` in lambdas work as `return` according to CRuby behavior.Yukihiro "Matz" Matsumoto
2017-06-01Print most recent call last as CPython does.Yukihiro "Matz" Matsumoto
2017-05-31Restore MRB_API function `mrb_exc_backtrace(mrb, exc)`; ref 9644ad5Yukihiro "Matz" Matsumoto
2017-05-26Use RData instead of String to represent backtrace.Yukihiro "Matz" Matsumoto
2017-05-25Check backtrace info may not be set (esp. NoMemError); fix #3663Yukihiro "Matz" Matsumoto
2017-05-23Simplify backtrace mechanism; fix #3633 #3634 #3644Yukihiro "Matz" Matsumoto
Instead of preserving a backtrace in `mrb_state`, `mrb_exc_set` keeps packed backtrace in an exception object. `#backtrace` unpacks it to an array of strings.
2017-05-23Remove class info from backtrace lines.Yukihiro "Matz" Matsumoto
2017-05-23Type check before `print_backtrace()`Yukihiro "Matz" Matsumoto
2017-05-15Avoid call to_s during backtrace traversalCraig Lehmann
2017-04-25Avoid use of `snprintf()` when DISABLE_STDIO is set; fix #3632Yukihiro "Matz" Matsumoto
ref #3492 #3515 #3517
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-03-25Fix lost linenoksss
2017-03-20Use `snprintf()` to stringify fixnum numbers; fix #3492Yukihiro "Matz" Matsumoto
2017-03-04Save/restore arena index in the loop.Yukihiro "Matz" Matsumoto
2017-02-15Preallocate SystemStackError; ref #3421Yukihiro "Matz" Matsumoto
2017-02-08Check if irep is NULL before print_backtrace()Yukihiro "Matz" Matsumoto
According to the valgrind log attached to #3438, proc->body.irep may be NULL in some cases.
2017-01-23Skip non string values in backtraces; ref #3408Yukihiro "Matz" Matsumoto
2016-11-24Fixes for compiling mruby as C++Tomasz Dąbrowski
2016-03-07change backtrace sep from const char* to charYukihiro "Matz" Matsumoto
2016-03-06Revert "Merge pull request #3126 from jbreeden/backtrace_irep_null_check"Kouhei Sutou
This reverts commit bf7719fe8da1b704c2cb72dd629dc75135fd1ad5, reversing changes made to 4f4fa0ade0fd80a3a6fa64bebcb5f71b0d4a8648. We should get backtrace while irep is alive.
2016-03-05Fix Travis CIjbreeden
2016-03-05Null check for irep & initialize loc.linenojbreeden
2016-02-26The original code crashed when mrb->backtrace.n grew to 16.Carlo Prelz
It looks like the logic to reallocate the backtrace was flawed, based on the wrong variable (loc_raw->i, which, as I have verified, decreases from 16 to 0 instead of increasing) I am not sure if this is the correct fix
2016-01-07Fix segfault on mrb_exc_backtrace.Simon Génier
The code to iterate over backtrace locations was changed in #3065, but unfortunately output_backtrace was not correctly updated to forward the callback.
2016-01-07printf precision parameter must be 'int' typeSyohei YOSHIDA
There is a problem when MRB_INT64 is enabled.
2015-12-29Support backtrace after method callsKouhei Sutou
GitHub: fix #2902, #2917 The current implementation traverses stack to retrieve backtrace. But stack will be changed when some operations are occurred. It means that backtrace may be broken after some operations. This change (1) saves the minimum information to retrieve backtrace when exception is raised and (2) restores backtrace from the minimum information when backtrace is needed. It reduces overhead for creating backtrace Ruby objects. The space for the minimum information is reused by multiple exceptions. So memory allocation isn't occurred for each exception.
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2015-11-17DISABLE_STDIO/ENABLE_DEBUG macros to rename; close #3014Yukihiro "Matz" Matsumoto
changes: * rename DISABLE_STDIO -> MRB_DISABLE_STDIO * rename ENABLE_DEBUG -> MRB_ENABLE_DEBUG_HOOK * no more opposite macro definitions (e.g. ENABLE_STDIO, DISABLE_DEBUG). * rewrite above macro references throughout the code. * update documents
2015-02-12DISABLE_STDIO does not disable backtraces.Simon Génier
2015-02-05Fix possible segfault when accessing backtrace with MRB_WORD_BOXING.Simon Génier
2014-08-04add MRB_API modifiers to mruby API functionsYukihiro "Matz" Matsumoto
2014-07-15backtrace supression condition was wrong; fix #2472Yukihiro "Matz" Matsumoto
2014-07-12avoid print backtrace for SystemStackErrorYukihiro "Matz" Matsumoto
2014-06-13Fixed dead assignment in 'backtrace.c' reported by 'clang-analyzer'Jose Narvaez
2014-04-29fix disabled stdio (and remove trailing spaces)cremno
2014-04-24Fix MSVC warning for backtrace.ckyab
2014-03-01allow send method not to call mrb_funcall if calling method is implemented ↵Yukihiro "Matz" Matsumoto
in Ruby; fix #1680 ref #1765
2014-02-27revert 38e9ce21 and API changed; mrb_get_backtrace() -> renamed to ↵Yukihiro "Matz" Matsumoto
mrb_exc_backtrace since this is a backtrace method implementation of Exception; mrb_get_backtrace_at() -> removed; mrb_get_backtrace() -> added to get backtrace in array (like caller)
2014-02-27add new function mrb_get_backtrace_at() to get backtrace at ci and pcYukihiro "Matz" Matsumoto
2014-01-21describe call stack overwritten problem of mrb_get_backtrace; close #1661Yukihiro "Matz" Matsumoto
2014-01-07remove superfluous includescremno
- reduce compile time by a little bit (full-core: ~0.7s for me) - thanks to 'include-what-you-use' for some help - include Standard C header files before any other (coding style)
2014-01-08skip "trace:" header if no backtrace line existsYukihiro "Matz" Matsumoto
2014-01-06small cosmetic variable renamingYukihiro "Matz" Matsumoto
2013-12-01add mrb_intern_lit for creating symbol from string literaltake_cheeze
2013-11-29rename mrb_intern2() to mrb_intern(); huge API incompatibility; close #1513Yukihiro "Matz" Matsumoto
2013-11-19clear ci->err after const set; revert 5b51b1; ref #1583Yukihiro "Matz" Matsumoto
2013-11-18ci->err may be out of boud; close #1583Yukihiro "Matz" Matsumoto
2013-10-15better error position displayYukihiro "Matz" Matsumoto
2013-09-21rename voidp to cptrYukihiro "Matz" Matsumoto
2013-09-03remove Exception#verbose_backtrace; #1495Yukihiro "Matz" Matsumoto