Oh ! Thanks! THAT WORKS! 2012/6/6 Nathan Rajlich <nat...@tootallnate.net>
> Try changing the String::New("Buffer") part to String::NewSymbol("Buffer"). > > Idk why, but that fixed some seg faults I was experiencing using similar > code. > > On Wed, Jun 6, 2012 at 12:11 AM, Denys Khanzhiyev <xden...@gmail.com>wrote: > >> I definetelly shoot myself in my leg somewhere >> >> when i change code like that >> >> HandleScope scope; >> Local<Value> js_field = Local<Value>::New(Null()); >> >> .... >> >> js_field = String::New((const char*)(vary2->vary_string)); >> >> >> >> ... >> return scope.Close(js_field); >> >> to code like that >> >> HandleScope scope; >> Local<Value> js_field = Local<Value>::New(Null()); >> >> >> >> .... >> Buffer *slowBuffer = Buffer::New(vary2->vary_length); >> memcpy(Buffer::Data(slowBuffer), (const char*)(vary2->vary_string), >> vary2->vary_length); >> >> >> Local<Object> globalObj = Context::GetCurrent()->Global(); >> >> >> Local<Function> bufferConstructor = >> Local<Function>::Cast(globalObj->Get(String::New("Buffer"))); >> >> >> Handle<Value> constructorArgs[3] = { slowBuffer->handle_, >> Integer::New(vary2->vary_length), Integer::New(0) }; >> >> >> js_field = bufferConstructor->NewInstance(3, constructorArgs); >> >> ... >> return scope.Close(js_field); >> >> i.e. returns Buffer instead of String. >> Node strarts to fall with segmentation fault unconditionally. I call >> that method in a loop. The problem may appear after 100 iterations or after >> 10000. The input data are same for both cases. >> Am I doing something wrong? >> >> >> 2012/6/5 Denys Khanzhiyev <xden...@gmail.com> >> >>> gdb --args ./node_g ../node_firebird/issues/issue10.js >>> GNU gdb (GDB) CentOS (7.0.1-42.el5.centos) >>> Copyright (C) 2009 Free Software Foundation, Inc. >>> License GPLv3+: GNU GPL version 3 or later < >>> http://gnu.org/licenses/gpl.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. Type "show >>> copying" >>> and "show warranty" for details. >>> This GDB was configured as "i386-redhat-linux-gnu". >>> For bug reporting instructions, please see: >>> <http://www.gnu.org/software/gdb/bugs/>... >>> Reading symbols from /root/node/node_g...(no debugging symbols >>> found)...done. >>> >>> Trying to catch segfault and all I get in backtrace >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x578bbeaa in ?? () >>> (gdb) backtrace >>> #0 0x578bbeaa in ?? () >>> #1 0x4aaeb361 in ?? () >>> #2 0x478517a1 in ?? () >>> #3 0x578bbe61 in ?? () >>> #4 0x0000000c in ?? () >>> #5 0x578acf46 in ?? () >>> #6 0x00000000 in ?? () >>> >>> ]# ./node_g -v >>> v0.6.13 >>> >>> built with >>> ./configure --debug >>> make >>> >>> any help? >>> >>> Thank you! >>> >> >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nodejs@googlegroups.com >> To unsubscribe from this group, send email to >> nodejs+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en