[#4745] Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — Erik Huelsmann <ehuels@...>

Having taken upon me the task to provide a Windows build for

24 messages 2005/04/20
[#4746] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — Austin Ziegler <halostatue@...> 2005/04/20

On 4/20/05, Erik Huelsmann <ehuels@gmail.com> wrote:

[#4747] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — Erik Huelsmann <ehuels@...> 2005/04/20

Hi Austin,

[#4762] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — nobu.nokada@... 2005/04/24

Hi,

[#4783] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — Erik Huelsmann <ehuels@...> 2005/04/25

On 4/24/05, nobu.nokada@softhome.net <nobu.nokada@softhome.net> wrote:

[#4787] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — nobu.nokada@... 2005/04/25

Hi,

[#4794] Re: Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings — Erik Huelsmann <ehuels@...> 2005/04/25

> > > Ruby is just using AC_TYPE_UID_T. So, using typedef for them,

[#4751] Illegal regexp causes segfault — Andrew Walrond <andrew@...>

irb(main):058:0> a = /\[([^]]*)\]/

13 messages 2005/04/22

Re: Illegal regexp causes segfault

From: ts <decoux@...>
Date: 2005-04-24 10:12:04 UTC
List: ruby-core #4764
>>>>> "A" == Andrew Walrond <andrew@walrond.org> writes:

A> (gdb) set args -d -e 'a = /\[([^]]*)\]/'

 Another example

uln% gdb --quiet /usr/local/bin/ruby
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r -e '/[]]/'
Starting program: /usr/local/bin/ruby -e '/[]]/'

Program received signal SIGSEGV, Segmentation fault.
st_insert (table=0x2074756f68746977, key=10233, value=182894465816)
    at st.c:298
298         hash_val = do_hash(key, table);
(gdb) bt
#0  st_insert (table=0x2074756f68746977, key=10233, value=182894465816)
    at st.c:298
#1  0x000000000041cdf4 in rb_add_method (klass=4859488, mid=10233, 
    node=0x2a955c1340, noex=0) at eval.c:348
#2  0x0000000000486c12 in Init_Enumerable () at enum.c:924
#3  0x0000000000000000 in ?? ()
#4  0x0000000000000000 in ?? ()
#5  0x0000000000000000 in ?? ()
#6  0x0000000000000000 in ?? ()
#7  0x0000000000000000 in ?? ()
#8  0x0000000000000000 in ?? ()
#9  0x0000000000000000 in ?? ()
#10 0x0000000000000000 in ?? ()
#11 0x0000000000000000 in ?? ()
#12 0x0000000000000000 in ?? ()
#13 0x0000000000000000 in ?? ()
#14 0x0000000000000000 in ?? ()
#15 0x0000000000000000 in ?? ()
#16 0x0000000000000000 in ?? ()
#17 0x0000000000000000 in ?? ()
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000000 in ?? ()
#20 0x0000000000000000 in ?? ()
#21 0x0000000000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x0000000000000000 in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x0000000000000000 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000000000000 in ?? ()
#28 0x0000000000000000 in ?? ()
#29 0x0000000000000000 in ?? ()
#30 0x0000000000000000 in ?? ()
#31 0x0000000000000000 in ?? ()
#32 0x0000000000000000 in ?? ()
#33 0x0000000000000000 in ?? ()
#34 0x0000000000000000 in ?? ()
#35 0x0000000000000000 in ?? ()
#36 0x0000000000000000 in ?? ()
#37 0x0000000000000000 in ?? ()
#38 0x0000000000000000 in ?? ()
#39 0x0000000000000000 in ?? ()
#40 0x0000000000000000 in ?? ()
#41 0x0000000000000000 in ?? ()
#42 0x0000000000000000 in ?? ()
#43 0x0000000000000000 in ?? ()
#44 0x0000000000000000 in ?? ()
#45 0x0000000000000000 in ?? ()
#46 0x0000000000000000 in ?? ()
#47 0x0000000000000000 in ?? ()
#48 0x0000000000000000 in ?? ()
#49 0x0000000000000000 in ?? ()
#50 0x0000000000000000 in ?? ()
#51 0x0000000000000000 in ?? ()
#52 0x0000000000000000 in ?? ()
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) b rb_warn
Breakpoint 1 at 0x486f20: file error.c, line 137.
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /usr/local/bin/ruby -e '/[]]/'

Breakpoint 1, rb_warn (fmt=0x4a2660 "character class has `]' without escape")
    at error.c:137
137     {
(gdb) disas
Dump of assembler code for function rb_warn:
0x0000000000486f20 <rb_warn+0>: push   %rbx
0x0000000000486f21 <rb_warn+1>: sub    $0x20d0,%rsp
0x0000000000486f28 <rb_warn+8>: mov    %rdx,0x2030(%rsp)
0x0000000000486f30 <rb_warn+16>:        movzbl %al,%edx
0x0000000000486f33 <rb_warn+19>:        mov    %rsi,0x2028(%rsp)
0x0000000000486f3b <rb_warn+27>:        lea    0x0(,%rdx,4),%rax
0x0000000000486f43 <rb_warn+35>:        mov    $0x486f95,%edx
0x0000000000486f48 <rb_warn+40>:        mov    %rcx,0x2038(%rsp)
0x0000000000486f50 <rb_warn+48>:        mov    %r8,0x2040(%rsp)
0x0000000000486f58 <rb_warn+56>:        mov    %r9,0x2048(%rsp)
0x0000000000486f60 <rb_warn+64>:        sub    %rax,%rdx
0x0000000000486f63 <rb_warn+67>:        cmpq   $0x4,1389149(%rip)        # 0x5da1c8 <ruby_verbose>
0x0000000000486f6b <rb_warn+75>:        lea    0x20cf(%rsp),%rax
0x0000000000486f73 <rb_warn+83>:        jmpq   *%edx
0x0000000000486f75 <rb_warn+85>:        movaps %xmm7,0xfffffffffffffff1(%rax)
0x0000000000486f79 <rb_warn+89>:        movaps %xmm6,0xffffffffffffffe1(%rax)
0x0000000000486f7d <rb_warn+93>:        movaps %xmm5,0xffffffffffffffd1(%rax)
0x0000000000486f81 <rb_warn+97>:        movaps %xmm4,0xffffffffffffffc1(%rax)
0x0000000000486f85 <rb_warn+101>:       movaps %xmm3,0xffffffffffffffb1(%rax)
0x0000000000486f89 <rb_warn+105>:       movaps %xmm2,0xffffffffffffffa1(%rax)
0x0000000000486f8d <rb_warn+109>:       movaps %xmm1,0xffffffffffffff91(%rax)
0x0000000000486f91 <rb_warn+113>:       movaps %xmm0,0xffffffffffffff81(%rax)
0x0000000000486f95 <rb_warn+117>:       je     0x486fe9 <rb_warn+201>
0x0000000000486f97 <rb_warn+119>:       lea    0x20(%rsp),%rbx
0x0000000000486f9c <rb_warn+124>:       mov    %rdi,%rcx
0x0000000000486f9f <rb_warn+127>:       mov    $0x2000,%esi
0x0000000000486fa4 <rb_warn+132>:       mov    $0x4a5920,%edx
0x0000000000486fa9 <rb_warn+137>:       xor    %eax,%eax
0x0000000000486fab <rb_warn+139>:       mov    %rbx,%rdi
0x0000000000486fae <rb_warn+142>:       callq  0x40c498 <snprintf>
0x0000000000486fb3 <rb_warn+147>:       lea    0x20e0(%rsp),%rax
0x0000000000486fbb <rb_warn+155>:       mov    %rsp,%rsi
0x0000000000486fbe <rb_warn+158>:       mov    %rbx,%rdi
0x0000000000486fc1 <rb_warn+161>:       movl   $0x8,(%rsp)
0x0000000000486fc8 <rb_warn+168>:       movl   $0x30,0x4(%rsp)
0x0000000000486fd0 <rb_warn+176>:       mov    %rax,0x8(%rsp)
0x0000000000486fd5 <rb_warn+181>:       lea    0x2020(%rsp),%rax
0x0000000000486fdd <rb_warn+189>:       mov    %rax,0x10(%rsp)
0x0000000000486fe2 <rb_warn+194>:       xor    %eax,%eax
0x0000000000486fe4 <rb_warn+196>:       callq  0x486ea0 <warn_print>
0x0000000000486fe9 <rb_warn+201>:       add    $0x20d0,%rsp
0x0000000000486ff0 <rb_warn+208>:       pop    %rbx
0x0000000000486ff1 <rb_warn+209>:       retq   
End of assembler dump.
(gdb) stepi
0x0000000000486f21      137     {
(gdb) 
137     {
(gdb) 
0x0000000000486f30      137     {
(gdb) 
0x0000000000486f33      137     {
(gdb) 
0x0000000000486f3b      137     {
(gdb) 
0x0000000000486f43      137     {
(gdb) 
0x0000000000486f48      137     {
(gdb) 
0x0000000000486f50      137     {
(gdb) 
0x0000000000486f58      137     {
(gdb) 
0x0000000000486f60      137     {
(gdb) 
141         if (NIL_P(ruby_verbose)) return;
(gdb) 
137     {
(gdb) 
0x0000000000486f73      137     {
(gdb) 
0x0000000000486c0d in Init_Enumerable () at enum.c:924
924         rb_define_method(rb_mEnumerable,"select", enum_find_all, 0);
(gdb) q
The program is running.  Exit anyway? (y or n) y
uln% 


 See the call to 0x0000000000486f73 (jmpq)



Guy Decoux

In This Thread