[#69892] [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API — normalperson@...
Issue #11339 has been reported by Eric Wong.
8 messages
2015/07/07
[#69983] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/15
normalperson@yhbt.net wrote:
[#69990] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— SASADA Koichi <ko1@...>
2015/07/16
On 2015/07/16 4:41, Eric Wong wrote:
[#69995] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/16
SASADA Koichi <ko1@atdot.net> wrote:
[#69984] $SAFE inside an Array — Bertram Scharpf <lists@...>
Hi,
4 messages
2015/07/15
[#70001] [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10 — ngotogenome@...
Issue #11336 has been updated by Naohisa Goto.
4 messages
2015/07/16
[#70005] Re: [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10
— Eric Wong <normalperson@...>
2015/07/16
Sorry, but I think rb_divert_reserved_fd seems a racy fix. I think the
[#70011] [Ruby trunk - Bug #11362] [Open] [PATCH] ensure Process.kill(:STOP, $$) is resumable — normalperson@...
Issue #11362 has been reported by Eric Wong.
3 messages
2015/07/17
[#70016] [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg — merch-redmine@...
Issue #11364 has been reported by Jeremy Evans.
8 messages
2015/07/17
[#70052] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/20
merch-redmine@jeremyevans.net wrote:
[#70055] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Jeremy Evans <code@...>
2015/07/20
On 07/20 10:46, Eric Wong wrote:
[#70056] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/21
Jeremy Evans <code@jeremyevans.net> wrote:
[#70103] [Ruby trunk - Feature #11375] Decreased Object Allocation in Pathname.rb — richard.schneeman@...
Issue #11375 has been updated by Richard Schneeman.
3 messages
2015/07/23
[#70156] [Ruby trunk - Bug #11396] Bad performance in ruby >= 2.2 for Hash with many symbol keys — dunric29a@...
Issue #11396 has been updated by David Unric.
3 messages
2015/07/28
[ruby-core:70074] [Ruby trunk - Bug #11383] [Open] Infinite loop in str_buf_cat triggered by str_gsub
From:
laurent.farcy@...
Date:
2015-07-21 15:27:06 UTC
List:
ruby-core #70074
Issue #11383 has been reported by Laurent Farcy.
----------------------------------------
Bug #11383: Infinite loop in str_buf_cat triggered by str_gsub
https://bugs.ruby-lang.org/issues/11383
* Author: Laurent Farcy
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
I've got a Ruby program which reads some RSS/Atom feeds to load each of them into a relational database. It makes use of a modified version of SimpleRSS v1.2.
After moving to Ruby 2.2.2, I observe 100% CPU usage from time to time. Using gdb, I was able to identify the culprit: it's a call to `str_buf_cat` from `str_gsub`. Here's the section of code that loops in `string.c` (from line 2198 til line 2204).
~~~
while (total > capa) {
if (capa > LONG_MAX / 2) {
capa = (total + 4095) / 4096 * 4096;
break;
}
capa = 2 * capa;
}
~~~
`capa` is equal to 0 when the while block infinitely loops. I guess it's somehow unexpected...
Unfortunately, since the VM is looping, I cannot determine the piece of 'my' code where `gsub` is used. `rb_eval`, as found in https://github.com/michaelklishin/gdb-macros-for-ruby/blob/master/gdb_macros_for_ruby, cannot work because rb_finish cannot terminate.
But I was able to dump the backtrace and all the args and locals that lead to the infinite loop.
~~~
#0 str_buf_cat (str=139648800, ptr=0x7e580b0 "<", len=1) at string.c:2203
#1 0x00007fd211b721a0 in rb_enc_cr_str_buf_cat (str=139648800, ptr=0x7e580b0 "<", len=1, ptr_encindex=<optimized out>, ptr_cr=1048576, ptr_cr_ret=<optimized out>) at string.c:2322
#2 0x00007fd211b7b245 in rb_str_buf_append (str=139648800, str2=139427760) at string.c:2365
#3 0x00007fd211b7b5ab in str_gsub (argc=<optimized out>, argv=<optimized out>, str=139649120, bang=0) at string.c:4356
#4 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe0c0, ci=<optimized out>) at vm_insnhelper.c:1382
#5 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#6 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#7 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=133345280, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0,
defined_class=96453960, splattable=1) at vm.c:813
#8 0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972d7728, argc=1, self=<optimized out>, block=<optimized out>,
th=<optimized out>) at vm.c:771
#9 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853
#10 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987
#11 rb_yield (val=95265200) at vm_eval.c:997
#12 0x00007fd211a4d432 in rb_ary_each (array=133344920) at array.c:1803
#13 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe2f0, ci=<optimized out>) at vm_insnhelper.c:1382
#14 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x68c8ff8, reg_cfp=0x7fd210afe2f0, th=0x24585f0) at vm_insnhelper.c:1475
#15 vm_call_method (th=0x24585f0, cfp=0x7fd210afe2f0, ci=0x68c8ff8) at vm_insnhelper.c:1691
#16 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#17 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#18 0x00007fd211bd0873 in vm_call0_body (th=0x24585f0, ci=0x7fff972d7d00, argv=0x7fd2109ff508) at vm_eval.c:180
#19 0x00007fd211bd0aaf in vm_call0 (defined_class=96390640, me=<optimized out>, argv=<optimized out>, argc=<optimized out>, id=<optimized out>, recv=<optimized out>, th=<optimized out>) at vm_eval.c:59
#20 rb_vm_call (th=<optimized out>, recv=<optimized out>, id=<optimized out>, argc=<optimized out>, argv=<optimized out>, me=<optimized out>, defined_class=96390640) at vm_eval.c:260
#21 0x00007fd211a9ed32 in rb_method_call_with_block (argc=1, argv=0x7fd2109ff508, method=90586800, pass_procval=8) at proc.c:1853
#22 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe3e0, ci=<optimized out>) at vm_insnhelper.c:1382
#23 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x5fa4d58, reg_cfp=0x7fd210afe3e0, th=0x24585f0) at vm_insnhelper.c:1475
#24 vm_call_method (th=0x24585f0, cfp=0x7fd210afe3e0, ci=0x5fa4d58) at vm_insnhelper.c:1691
#25 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#26 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#27 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=69313120,
splattable=1) at vm.c:813
#28 0x00007fd211bd323f in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x0, argc=0, self=<optimized out>, block=<optimized out>, th=<optimized out>)
at vm.c:771
#29 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853
#30 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987
#31 rb_yield (val=52) at vm_eval.c:994
#32 0x00007fd211a96b69 in rb_protect (proc=0x7fd211bd3170 <rb_yield>, data=52, state=0x7fff972d877c) at eval.c:876
#33 0x00007fd211b15132 in rb_f_fork (obj=<optimized out>) at process.c:3687
#34 rb_f_fork (obj=<optimized out>) at process.c:3675
#35 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe570, ci=<optimized out>) at vm_insnhelper.c:1382
#36 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#37 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#38 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=96390640,
splattable=1) at vm.c:813
#39 0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972d8cd8, argc=1, self=<optimized out>, block=<optimized out>,
th=<optimized out>) at vm.c:771
#40 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853
#41 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987
#42 rb_yield (val=90431480) at vm_eval.c:997
#43 0x00007fd211a4d432 in rb_ary_each (array=90502920) at array.c:1803
#44 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe750, ci=<optimized out>) at vm_insnhelper.c:1382
#45 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#46 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
---Type <return> to continue, or q <return> to quit---
#47 0x00007fd211bd0873 in vm_call0_body (th=0x24585f0, ci=0x7fff972d91e0, argv=0x7fd2109ff370) at vm_eval.c:180
#48 0x00007fd211bd0aaf in vm_call0 (defined_class=96390640, me=<optimized out>, argv=<optimized out>, argc=<optimized out>, id=<optimized out>, recv=<optimized out>, th=<optimized out>) at vm_eval.c:59
#49 rb_vm_call (th=<optimized out>, recv=<optimized out>, id=<optimized out>, argc=<optimized out>, argv=<optimized out>, me=<optimized out>, defined_class=96390640) at vm_eval.c:260
#50 0x00007fd211a9ed32 in rb_method_call_with_block (argc=0, argv=0x7fd2109ff370, method=65003640, pass_procval=8) at proc.c:1853
#51 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afe7f0, ci=<optimized out>) at vm_insnhelper.c:1382
#52 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#53 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#54 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96159800, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=96311120,
splattable=0) at vm.c:813
#55 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=96311120, cref=0x0, blockptr=0x0, argv=0x7fd2109ff280, argc=0, self=96159800, block=<optimized out>, th=0x24585f0) at vm.c:771
#56 vm_invoke_proc (th=0x24585f0, proc=0x35caf50, self=96159800, defined_class=96311120, argc=0, argv=0x7fd2109ff280, blockptr=0x0) at vm.c:878
#57 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897
#58 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff280, procval=96158240) at proc.c:731
#59 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afea20, ci=<optimized out>) at vm_insnhelper.c:1382
#60 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f40b40, reg_cfp=0x7fd210afea20, th=0x24585f0) at vm_insnhelper.c:1475
#61 vm_call_method (th=0x24585f0, cfp=0x7fd210afea20, ci=0x3f40b40) at vm_insnhelper.c:1691
#62 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#63 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#64 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=96096080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=66391040,
splattable=0) at vm.c:813
#65 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=66391040, cref=0x0, blockptr=0x0, argv=0x7fd2109ff258, argc=0, self=96096080, block=<optimized out>, th=0x24585f0) at vm.c:771
#66 vm_invoke_proc (th=0x24585f0, proc=0x657dea0, self=96096080, defined_class=66391040, argc=0, argv=0x7fd2109ff258, blockptr=0x0) at vm.c:878
#67 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897
#68 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff258, procval=96095760) at proc.c:731
#69 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeac0, ci=<optimized out>) at vm_insnhelper.c:1382
#70 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f3b430, reg_cfp=0x7fd210afeac0, th=0x24585f0) at vm_insnhelper.c:1475
#71 vm_call_method (th=0x24585f0, cfp=0x7fd210afeac0, ci=0x3f3b430) at vm_insnhelper.c:1691
#72 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#73 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#74 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=66067080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=66599560,
splattable=0) at vm.c:813
#75 0x00007fd211bd2513 in invoke_block_from_c (splattable=0, defined_class=66599560, cref=0x0, blockptr=0x0, argv=0x7fd2109ff170, argc=0, self=66067080, block=<optimized out>, th=0x24585f0) at vm.c:771
#76 vm_invoke_proc (th=0x24585f0, proc=0x690a990, self=66067080, defined_class=66599560, argc=0, argv=0x7fd2109ff170, blockptr=0x0) at vm.c:878
#77 0x00007fd211bd26bd in rb_vm_invoke_proc (th=<optimized out>, proc=<optimized out>, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>) at vm.c:897
#78 0x00007fd211a9d78f in proc_call (argc=0, argv=0x7fd2109ff170, procval=96097720) at proc.c:731
#79 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeca0, ci=<optimized out>) at vm_insnhelper.c:1382
#80 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x3f0a5a0, reg_cfp=0x7fd210afeca0, th=0x24585f0) at vm_insnhelper.c:1475
#81 vm_call_method (th=0x24585f0, cfp=0x7fd210afeca0, ci=0x3f0a5a0) at vm_insnhelper.c:1691
#82 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#83 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#84 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=38526080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=38530160,
splattable=1) at vm.c:813
#85 0x00007fd211bd323f in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x0, argc=0, self=<optimized out>, block=<optimized out>, th=<optimized out>)
at vm.c:771
#86 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853
#87 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987
#88 rb_yield (val=52) at vm_eval.c:994
#89 0x00007fd211a96b69 in rb_protect (proc=0x7fd211bd3170 <rb_yield>, data=52, state=0x7fff972db32c) at eval.c:876
#90 0x00007fd211b15132 in rb_f_fork (obj=<optimized out>) at process.c:3687
#91 rb_f_fork (obj=<optimized out>) at process.c:3675
#92 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afee30, ci=<optimized out>) at vm_insnhelper.c:1382
#93 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x28840c0, reg_cfp=0x7fd210afee30, th=0x24585f0) at vm_insnhelper.c:1475
#94 vm_call_method (th=0x24585f0, cfp=0x7fd210afee30, ci=0x28840c0) at vm_insnhelper.c:1691
---Type <return> to continue, or q <return> to quit---
#95 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#96 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#97 0x00007fd211bd202e in invoke_block_from_c (th=0x24585f0, block=<optimized out>, self=38526080, argc=<optimized out>, argv=<optimized out>, blockptr=<optimized out>, cref=0x0, defined_class=38530160,
splattable=1) at vm.c:813
#98 0x00007fd211bd3287 in invoke_block_from_c (splattable=1, defined_class=<optimized out>, cref=0x0, blockptr=0x0, argv=0x7fff972db958, argc=1, self=<optimized out>, block=<optimized out>,
th=<optimized out>) at vm.c:771
#99 vm_yield (th=<optimized out>, argv=<optimized out>, argc=<optimized out>) at vm.c:853
#100 rb_yield_0 (argv=<optimized out>, argc=<optimized out>) at vm_eval.c:987
#101 rb_yield (val=40313360) at vm_eval.c:997
#102 0x00007fd211a4d432 in rb_ary_each (array=41238960) at array.c:1803
#103 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afeed0, ci=<optimized out>) at vm_insnhelper.c:1382
#104 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x2887e28, reg_cfp=0x7fd210afeed0, th=0x24585f0) at vm_insnhelper.c:1475
#105 vm_call_method (th=0x24585f0, cfp=0x7fd210afeed0, ci=0x2887e28) at vm_insnhelper.c:1691
#106 0x00007fd211bca1fa in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1024
#107 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#108 0x00007fd211bd4a36 in rb_iseq_eval (iseqval=42463120) at vm.c:1657
#109 0x00007fd211a9942d in rb_load_internal0 (th=0x24585f0, fname=40310160, wrap=<optimized out>) at load.c:614
#110 0x00007fd211a9b5df in rb_load_internal (wrap=0, fname=<optimized out>) at load.c:643
#111 rb_require_internal (fname=40310240, safe=0) at load.c:1004
#112 0x00007fd211a9b8c9 in rb_require_safe (fname=40310280, safe=<optimized out>) at load.c:1052
#113 0x00007fd211bc365a in vm_call_cfunc_with_frame (th=0x24585f0, reg_cfp=0x7fd210afef70, ci=<optimized out>) at vm_insnhelper.c:1382
#114 0x00007fd211bd60c5 in vm_call_cfunc (ci=0x2873770, reg_cfp=0x7fd210afef70, th=0x24585f0) at vm_insnhelper.c:1475
#115 vm_call_method (th=0x24585f0, cfp=0x7fd210afef70, ci=0x2873770) at vm_insnhelper.c:1691
#116 0x00007fd211bcb3a5 in vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1054
#117 0x00007fd211bcf6c3 in vm_exec (th=0x24585f0) at vm.c:1400
#118 0x00007fd211bd0397 in rb_iseq_eval_main (iseqval=40311160) at vm.c:1670
#119 0x00007fd211a949e2 in ruby_exec_internal (n=0x2671978) at eval.c:252
#120 0x00007fd211a9625d in ruby_exec_node (n=0x2671978) at eval.c:317
#121 0x00007fd211a9890e in ruby_run_node (n=0x2671978) at eval.c:309
#122 0x00000000004007db in main (argc=8, argv=0x7fff972dc9f8) at main.c:36
(gdb) set print elements 0
(gdb) info args
str = 139648800
ptr = 0x7e580b0 "<"
len = 1
(gdb) info locals
capa = 0
total = 1
olen = 0
off = <optimized out>
sptr = 0x0
termlen = 1
__PRETTY_FUNCTION__ = "str_buf_cat"
(gdb) select-frame 1
(gdb) info args
str = 139648800
ptr = 0x7e580b0 "<"
len = 1
ptr_encindex = <optimized out>
ptr_cr = 1048576
ptr_cr_ret = <optimized out>
(gdb) info locals
str_encindex = 1
res_encindex = <optimized out>
str_cr = 1048576
res_cr = <optimized out>
str_enc = <optimized out>
ptr_enc = <optimized out>
(gdb) select-frame 2
(gdb) info args
str = 139648800
str2 = 139427760
(gdb) info locals
str2_cr = 1048576
(gdb) select-frame 3
(gdb) info args
argc = <optimized out>
argv = <optimized out>
str = 139649120
bang = 0
(gdb) info locals
pat = 94449960
val = <optimized out>
repl = 4294967295
match = <optimized out>
match0 = 139640960
dest = 139648800
hash = 8
regs = <optimized out>
beg = <optimized out>
n = <optimized out>
beg0 = 727
end0 = 731
offset = 727
blen = <optimized out>
slen = 4132
len = 0
last = <optimized out>
mode = ITER
sp = 0x8865ce0 "<span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Hola chicas,vengo a comunicaros qui辿n es la ganadora del <a href=\"http://anamariearl.blogspot.com.es/2015/05/set-aloe-vera-lr-sorteo.html\">Sorteo</a> de un Lote de productos de Aloe Vera de <a href=\"http://www.lrworld.com/es/\">LR Health &Beauty</a>.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">La afortunada va a poder disfrutar de una caja formada por:<span style=\"color: lime;\"> <b><span style=\"color: black;\">Aloe vera con Pr坦polis</span></b></span><b> </b>que es una loci坦n suave id坦nea para una piel seca que necesita cuidados especiales.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\"><b>El Aloe vera Concentrado</b> que proporciona una hidrataci坦n m叩xima y deja una agradable sensaci坦n de frescor.Y <b>Aloe Vera Spray de Emergencia </b>que hidrata r叩pidamente la piel y cuida y regenera la que ha sido castigada por el sol.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\"><br /></span></span><br /><div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"><img border=\"0\" src=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" /></a></div><br /><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Y la ganadora de este maravilloso regalo es:</span> </span><br /><br /><span style=\"font-size: large;\"></span><br /><div style=\"background: #C3E6F1; border-radius: 6px; border: 1px solid #0099CC; color: black; font-family: font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12pt;\"><span style=\"font-size: large;\"><br /></span><br /><ul style=\"list-style: none; margin: 0; padding: 0;\"><span style=\"font-size: large;\"><br /> <li>Mariangeles Guerra Rodriguez</li></span></ul></div><span style=\"font-size: large;\"></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Muchas felicidades,me alegro mucho por ti seguro que te va encantar tu premio porque es un pack genial y es perfecto para este verano.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Me pongo en contacto contigo para que me des tus datos. </span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Muchas gracias a todas por participar y a la empresa por colaborar conmigo.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">No os preocupeis que otros sorteos est叩n de camino y habr叩 m叩s oportunidades de ganar alguno.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Hasta el pr坦ximo post.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Mil besos. </span></span><br /><ul style=\"list-style: none; margin: 0; padding: 0;\"><br /></ul><img src=\"http://feeds.feedburner.com/~r/Anamariearl/~4/wvZCu0DkZzE\" height=\"1\" width=\"1\" alt=\"\"/>"
cp = 0x8865fb7 "<b> </b>que es una loci坦n suave id坦nea para una piel seca que necesita cuidados especiales.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\"><b>El Aloe vera Concentrado</b> que proporciona una hidrataci坦n m叩xima y deja una agradable sensaci坦n de frescor.Y <b>Aloe Vera Spray de Emergencia </b>que hidrata r叩pidamente la piel y cuida y regenera la que ha sido castigada por el sol.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\"><br /></span></span><br /><div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"><img border=\"0\" src=\"http://3.bp.blogspot.com/-rOKiPF8-i6Y/VXbs-0NEhqI/AAAAAAAAX1s/gc09s5H6elo/s1600/2015-05-28_11.51.15.jpg\" /></a></div><br /><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Y la ganadora de este maravilloso regalo es:</span> </span><br /><br /><span style=\"font-size: large;\"></span><br /><div style=\"background: #C3E6F1; border-radius: 6px; border: 1px solid #0099CC; color: black; font-family: font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12pt;\"><span style=\"font-size: large;\"><br /></span><br /><ul style=\"list-style: none; margin: 0; padding: 0;\"><span style=\"font-size: large;\"><br /> <li>Mariangeles Guerra Rodriguez</li></span></ul></div><span style=\"font-size: large;\"></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Muchas felicidades,me alegro mucho por ti seguro que te va encantar tu premio porque es un pack genial y es perfecto para este verano.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Me pongo en contacto contigo para que me des tus datos. </span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Muchas gracias a todas por participar y a la empresa por colaborar conmigo.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">No os preocupeis que otros ---Type <return> to continue, or q <return> to quit---
sorteos est叩n de camino y habr叩 m叩s oportunidades de ganar alguno.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Hasta el pr坦ximo post.</span></span><br /><span style=\"font-size: large;\"><span style=\"font-family: "Trebuchet MS",sans-serif;\">Mil besos. </span></span><br /><ul style=\"list-style: none; margin: 0; padding: 0;\"><br /></ul><img src=\"http://feeds.feedburner.com/~r/Anamariearl/~4/wvZCu0DkZzE\" height=\"1\" width=\"1\" alt=\"\"/>"
tainted = 0
need_backref = -1
str_enc = 0x245af30
~~~
--
https://bugs.ruby-lang.org/