[#1207] warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...>
This message was posted to ruby-talk, but I didn't get responce from
>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:
ts wrote:
>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:
ts wrote:
>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:
ts wrote:
>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:
ts wrote:
>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:
Hi,
[#1229] stack problem — Mathieu Bouchard <matju@...>
On Sat, Jul 12, 2003 at 01:59:53PM +0900, Mathieu Bouchard wrote:
On Tue, Jul 15, 2003 at 01:26:43AM +0900, Mathieu Bouchard wrote:
Hi,
[#1237] FTP.new with block — Gavin Sinclair <gsinclair@...>
Hi,
>>>>> "G" == Gavin Sinclair <gsinclair@soyabean.com.au> writes:
Hi,
Mathieu Bouchard wrote:
On Sun, Jul 20, 2003 at 03:06:13AM +0900, Dave Thomas wrote:
>>>>> "R" == Richard Zidlicky <rz@linux-m68k.org> writes:
On Sun, Jul 20, 2003 at 06:51:03PM +0900, ts wrote:
>>>>> "R" == Richard Zidlicky <rz@linux-m68k.org> writes:
On Mon, Jul 21, 2003 at 09:59:19PM +0900, ts wrote:
[#1249] File.write(path, data)? — Gavin Sinclair <gsinclair@...>
I am glad to see File.read(path) in Ruby 1.8. But what about
[#1256] testunit, exit status and at_exit — Dave Thomas <dave@...>
I'd really like TestUnit to be able to return an exit status when I run
-----BEGIN PGP SIGNED MESSAGE-----
Sean E. Russell [mailto:ser@germane-software.com] wrote:
Hi,
[#1257] Add have_defined() and rework have_struct_member() — Michal Rokos <m.rokos@...>
Hello,
[#1297] Fix for Bug 1058 — Markus Walser <walser@...>
Hi,
Hi,
On Friday 25 July 2003 10:58, Yukihiro Matsumoto wrote:
Hi,
On Friday 25 July 2003 11:46, Yukihiro Matsumoto wrote:
I tried to figure out what's wrong. So far I havn't a solution:
Hello,
> Check the value of klass by
Hi,
[#1309] exceptions and such — Mathieu Bouchard <matju@...>
[#1310] adding NodeDump and ii — nobu.nokada@...
Hi,
>>>>> "n" == nobu nokada <nobu.nokada@softhome.net> writes:
Re: stack problem
Hi,
At Wed, 23 Jul 2003 06:19:15 +0900,
Mathieu Bouchard wrote:
> This is my current cleaned-up code for finding the bottom of the stack.
> Does this make sense to you? Can you find any problems with it?
Stepping and rounding by pagesize might be better.
Just a sample.
#if defined(_WIN32) || defined(__CYGWIN__)
#include <windows.h>
void *
localize_sysstack()
{
MEMORY_BASIC_INFORMATION m;
memset(&m, 0, sizeof(m));
VirtualQuery(&m, &m, sizeof(m));
/* assume stack growing downward */
return (char *)m.BaseAddress + m.RegionSize;
}
#else
#include <setjmp.h>
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
#ifndef STACK_GROW_DIRECTION
# ifdef __i386__
# define STACK_GROW_DIRECTION -1
# endif
#endif
#ifndef LOCAL_FUNC
# ifdef __GNUC__
# define LOCAL_FUNC 1
# else
# define LOCAL_FUNC 0
# endif
#endif
#if LOCAL_FUNC
# define RESCUE_STACK rescue_segfault
#else
# define RESCUE_STACK *rescue_segfault
#endif
#define TRAP_STACK \
sigjmp_buf RESCUE_STACK;\
static void trap_segfault(int signo) {siglongjmp(RESCUE_STACK, signo);}
#if !LOCAL_FUNC
TRAP_STACK
#endif
void *
localize_sysstack()
{
#if LOCAL_FUNC
TRAP_STACK;
#else
sigjmp_buf sigbuf;
#endif
volatile char *volatile bp = (volatile char *)&bp;
void (*old)(int) = signal(SIGSEGV, trap_segfault);
const long pagesize = getpagesize();
#if STACK_GROW_DIRECTION
const int growup = (STACK_GROW_DIRECTION > 0);
const long size = pagesize * STACK_GROW_DIRECTION;
#else
const int growup = stack_growup_p() ? 1 : 0;
const long size = growup ? pagesize : -pagesize;
#endif
#if !LOCAL_FUNC
rescue_segfault = &sigbuf;
#endif
if (!sigsetjmp(RESCUE_STACK, 0)) {
while (1) {
volatile char *p = bp - size;
(void)*p;
bp = p;
}
}
signal(SIGSEGV, old);
return (void *)(((unsigned long)bp + (growup ? 0 : pagesize)) & ~(pagesize - 1));
}
#endif
int main()
{
volatile char *bottom = localize_sysstack();
printf("%p\n", bottom);
bottom[-1];
*bottom;
return 0;
}
--
Nobu Nakada