Skip to content

Instantly share code, notes, and snippets.

Index: iseq.h
===================================================================
--- iseq.h (revision 24504)
+++ iseq.h (working copy)
@@ -85,6 +85,7 @@
int flip_cnt;
int label_no;
int node_level;
+ int last_line_traced;
const rb_compile_option_t *option;
Index: iseq.h
===================================================================
--- iseq.h (revision 24493)
+++ iseq.h (working copy)
@@ -85,6 +85,7 @@
int flip_cnt;
int label_no;
int node_level;
+ int last_line_traced;
const rb_compile_option_t *option;
/* for GCC 3.4.x */
#define TC_DISPATCH(insn) \
if (UNLIKELY(th->event_flags) && RUBY_VM_NORMAL_ISEQ_P(REG_CFP->iseq) && UNLIKELY(REG_CFP->iseq->iseq_flag != NULL)) \
{ \
unsigned long pos = REG_CFP->pc - REG_CFP->iseq->iseq_encoded; \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_CALL) \
EXEC_EVENT_HOOK(th, RUBY_EVENT_CALL, GET_SELF(), 0, 0); \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_LINE) \
EXEC_EVENT_HOOK(th, RUBY_EVENT_LINE, GET_SELF(), 0, 0); \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_RETURN) \
int
rb_iseq_translate_threaded_code(rb_iseq_t *iseq)
{
#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE
extern const void **rb_vm_get_insns_address_table(void);
#if OPT_DIRECT_THREADED_CODE
const void * const *table = rb_vm_get_insns_address_table();
#else
const void * const *table = rb_vm_get_insns_address_table();
#endif
# This assumes you have the latest Ruby 1.9 installed via MacPorts:
#
# $ sudo port sync
# $ sudo port install ruby19
#
# Make sure there are no trails of columnize, linecache, ruby-debug-base, ruby-debug, ruby-debug-ide, and ruby_core_source
for name in columnize linecache linecache19 ruby-debug-base ruby-debug-base19 ruby-debug ruby-debug19 ruby-debug-ide ruby_core_source
do
(gem1.9 list | grep ^$name >/dev/null) && sudo gem1.9 uninstall -a -x -I $name
find /opt/local/lib/ruby1.9/gems/1.9.1/gems -name "$name*" -type d -maxdepth 1 -print0 | sudo xargs -0 rm -rf