[#32009] merging nokogiri to ext/ — Aaron Patterson <aaron@...>
I would like to merge nokogiri to ext for the 1.9.3 release. I spoke to
Hello,
Hello,
On Thu, Sep 2, 2010 at 5:34 AM, Ryan Davis <ryand-ruby@zenspider.com> wrote:
Hi,
On Sep 4, 2010, at 3:19 PM, Benoit Daloze wrote:
On Sat, Sep 4, 2010 at 4:30 PM, James Edward Gray II
On Sun, Sep 5, 2010 at 9:19 PM, <brabuhr@gmail.com> wrote:
On Sep 5, 2010, at 12:28 PM, Giuseppe Bilotta wrote:
On Mon, Sep 06, 2010 at 05:02:09AM +0900, Joshua Ballanco wrote:
> Supposedly there are REXML tests that are maintained outside of Ruby,
Hi,
2010/9/3 NARUSE, Yui <naruse@airemix.jp>:
On Fri, Sep 03, 2010 at 04:27:07PM +0900, NARUSE, Yui wrote:
Hi,
On Sun, Sep 05, 2010 at 12:17:03AM +0900, Yusuke ENDOH wrote:
Hi,
On Fri, Sep 03, 2010 at 02:34:09PM +0900, NARUSE, Yui wrote:
Hi,
Currently, we're discussing three different topics:
On Thu, Sep 09, 2010 at 01:40:34AM +0900, Yusuke ENDOH wrote:
Hello,
Hi,
On Thu, Sep 09, 2010 at 12:33:07PM +0900, Yusuke ENDOH wrote:
Hi,
On Thu, Sep 09, 2010 at 10:13:31PM +0900, Yusuke ENDOH wrote:
As an alternate approach:
2010/9/10 James Cox <james@imaj.es>:
[#32056] [Ruby 1.8-Bug#3788][Open] URI cannot parse IPv6 addresses propertly — Adam Majer <redmine@...>
Bug #3788: URI cannot parse IPv6 addresses propertly
Issue #3788 has been updated by Adam Majer.
2010/9/8 Adam Majer <redmine@ruby-lang.org>:
[#32110] Ruby 2.0 Wiki/Wish-list? — Joshua Ballanco <jballanc@...>
Hi all,
2010/9/8 Joshua Ballanco <jballanc@gmail.com>:
On Sep 7, 2010, at 5:21 PM, NARUSE, Yui wrote:
Hi,
On Sep 8, 2010, at 12:37 AM, Yukihiro Matsumoto wrote:
Hi,
On Sep 8, 2010, at 2:00 AM, Yukihiro Matsumoto wrote:
Hi,
> -- "def" returns a lambda instead of nil
> So, for example, a few things I've wanted for a long time:
I really miss those features:
Hi,
On Thu, Sep 9, 2010 at 4:20 AM, "Martin J. D=C3=BCrst"
[#32135] [Ruby-Bug#3802][Open] freeaddrinfo not found in WS2_32.dll — Thomas Volkmar Worm <redmine@...>
Bug #3802: freeaddrinfo not found in WS2_32.dll
Issue #3802 has been updated by Usaku NAKAMURA.
Hi,
Hello,
On Tue, Oct 12, 2010 at 11:44 PM, U.Nakamura <usa@garbagecollect.jp> wrote:
2010/10/13 Luis Lavena <luislavena@gmail.com>:
[#32154] Making custom_lambda() work — Magnus Holm <judofyr@...>
A tiny suggestion for how we could make it possible to call lambdas
On Wed, Sep 8, 2010 at 18:21, Magnus Holm <judofyr@gmail.com> wrote:
On Sep 8, 2010, at 9:57 AM, Nikolai Weibull wrote:
On Wed, Sep 8, 2010 at 18:57, Nikolai Weibull <now@bitwi.se> wrote:
[#32156] Can we convert the standard library to gems? — James Edward Gray II <james@...>
Taken from the bundle Nokogiri thread:
On 2010-09-09 01:45:43 +0900, James Edward Gray II wrote:
On Sep 8, 2010, at 12:03 PM, Marcus Rueckert wrote:
On 2010-09-09 02:54:26 +0900, James Edward Gray II wrote:
On Sep 8, 2010, at 3:26 PM, Marcus Rueckert wrote:
On 2010-09-09 06:11:15 +0900, James Edward Gray II wrote:
On Thu, Sep 09, 2010 at 05:26:54AM +0900, Marcus Rueckert wrote:
On 10/09/10 at 02:41 +0900, Aaron Patterson wrote:
On Fri, Sep 10, 2010 at 1:54 AM, Lucas Nussbaum
ok, this is not exactly on topic, but I'm using Debian and Ubuntu a
Hi Elise,
Hi,
On Thu, Sep 09, 2010 at 02:06:50AM +0900, Yusuke ENDOH wrote:
Hi,
I'm off today so sorry if I missed some mails.
Urabe,
(2010/09/10 23:48), James Cox wrote:
I'm at an airport back to my home so in short,
On Sun, Sep 12, 2010 at 6:51 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wr=
(2010/09/13 3:54), James Cox wrote:
On Tue, Sep 14, 2010 at 12:37 PM, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
How difficult to make myself understood in English.
On Wed, Sep 15, 2010 at 1:43 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wr=
Hi,
On Wed, Sep 15, 2010 at 12:07 PM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
On 2010-09-16 01:42:39 +0900, James Cox wrote:
On Wed, Sep 15, 2010 at 1:35 PM, Marcus Rueckert <darix@opensu.se> wrote:
On 2010-09-16 03:36:56 +0900, James Cox wrote:
On Wednesday, September 15, 2010, Marcus Rueckert <darix@opensu.se> wrote:
On 16/09/10 at 11:02 +0900, James Cox wrote:
On Thu, Sep 16, 2010 at 1:59 AM, Lucas Nussbaum
On Thu, Sep 16, 2010 at 10:41 AM, James Tucker <jftucker@gmail.com> wrote:
On 2010-09-16 03:36:56 +0900, James Cox wrote:
On Thu, Sep 16, 2010 at 11:44 AM, Marcus Rueckert <darix@opensu.se> wrote:
On Wed, Sep 8, 2010 at 10:45 AM, James Edward Gray II
On Thu, Sep 9, 2010 at 1:41 PM, Roger Pack <rogerdpack2@gmail.com> wrote:
[#32165] [Ruby 1.9-Bug#3805][Open] Ruby generated gem specifications for bundled projects are incorrect — Luis Lavena <redmine@...>
Bug #3805: Ruby generated gem specifications for bundled projects are inc=
[#32200] Ruby 2.0 Wish-list? — Rocky Bernstein <rockyb@...>
Any plans for error messages in languages other than English?
[#32248] Replacing stdlib Date with C version — Jeremy Evans <code@...>
I've recently been working on a replacement for the stdlib Date class,
Hi,
On 09/10 07:23, Nobuyoshi Nakada wrote:
Hi,
[#32351] Cross-compilation bugs and seek for help — Luis Lavena <luislavena@...>
Hello,
It might be off topic though I have to mention this anyway. This is not for
[#32353] [Ruby 1.9-Bug#3825][Open] ENV.delete raise Exception on Windows — Heesob Park <redmine@...>
Bug #3825: ENV.delete raise Exception on Windows
[#32453] Why doesn’t Enumerable define a #last method? — Nikolai Weibull <now@...>
Hi!
(2010/09/17 19:19), Nikolai Weibull wrote:
On Fri, Sep 17, 2010 at 13:00, Urabe Shyouhei <shyouhei@ruby-lang.org> wrot=
On 17 September 2010 12:19, Nikolai Weibull <now@bitwi.se> wrote:
[#32454] [Ruby 1.9-Feature#3845][Open] "in" infix operator — Yusuke Endoh <redmine@...>
Feature #3845: "in" infix operator
On 17 September 2010 12:30, Yusuke Endoh <redmine@ruby-lang.org> wrote:
Hi,
On Wed, Sep 22, 2010 at 1:48 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
Hello Yusuke,
[#32465] [Ruby-Feature#3848][Open] Using http basic authentication for FTP with Open URI — Jérémy Lecour <redmine@...>
Feature #3848: Using http basic authentication for FTP with Open URI
On Sep 17, 2010, at 2:02 PM, J=E9r=E9my Lecour wrote:
On Sat, Sep 18, 2010 at 13:19, James Edward Gray II
On Sep 26, 2010, at 8:44 PM, mathew wrote:
On Sun, Sep 26, 2010 at 20:57, James Edward Gray II
[#32469] ruby.lib vs VC++ — Phlip <phlip2005@...>
Here's a nice sample program to illustrate my problem:
[#32478] [Ruby-Feature#3851][Open] Ruby 1.9.2p0 crash on filename with '[' — Jon Lambert <redmine@...>
Feature #3851: Ruby 1.9.2p0 crash on filename with '['
[#32506] [Ruby 1.9-Bug#3863][Open] [BUG] unknown type 0x22 (0xc given) — Jay Borenstein <redmine@...>
Bug #3863: [BUG] unknown type 0x22 (0xc given)
[#32529] [Ruby 1.9-Bug#3869][Open] Logger#log does not handle or escape new-line characters. — Hal Brodigan <redmine@...>
Bug #3869: Logger#log does not handle or escape new-line characters.
[#32565] RUBY_PLATFORM on MinGW64 (was: List of possible casting issues under LLP64) — wanabe <s.wanabe@...>
Hello,
On Sat, Sep 25, 2010 at 7:52 PM, wanabe <s.wanabe@gmail.com> wrote:
[#32585] Proposal for Optional Static Typing for Ruby — Martin Pilkington <pilky@...>
Hi,
Hi
Hi,
Hi Matz
Martin,
Hi,
On Sep 28, 2010, at 12:35 PM, Loren Segal wrote:
On Sep 28, 2010, at 2:47 PM, Loren Segal wrote:
Hi Loren, Joshua
Hi All,
It strikes me that much of the premise behind this thread is misguided =
Eleanor,
On 29 Sep 2010, at 16:03, Loren Segal wrote:
Hi Ellie,
Hi,
On Sep 29, 2010, at 12:33 AM, Bill Kelly wrote:
[#32614] Long lines in mails sent from Mail.app (Was: Re: Parameter and Return Interface Specification) — Nikolai Weibull <now@...>
On Tue, Sep 28, 2010 at 14:20, Asher <asher@ridiculouspower.com> wrote:
[#32634] [Ruby 1.9-Bug#3889][Open] Incorrectly detected i686-w64-mingw32 as x64-mingw — Luis Lavena <redmine@...>
Bug #3889: Incorrectly detected i686-w64-mingw32 as x64-mingw
Issue #3889 has been updated by Usaku NAKAMURA.
Issue #3889 has been updated by Shyouhei Urabe.
On Tue, Oct 05, 2010 at 02:03:23PM +0900, Shyouhei Urabe wrote:
Issue #3889 has been updated by Luis Lavena.
[ruby-core:32557] [Ruby 1.9-Feature#3875] [Patch] backtrace for i386-mswin32_100
Issue #3875 has been updated by Peter Weldon. File 0002-Add-C-level-backtrace-for-MSWIN-x86.patch added > * why StackWalk64 instead of StackWalk? StackWalk64 supersedes StackWalk in the newer Windows SDKs and has suppor= t for x64. > * why does it need another thread? It most probably doesn't. GetThreadContext() documentation says it is not= guaranteed to return a valid context for running threads. What I think t= hey mean is that the context will not remain valid after GetThreadContext= () if the thread is running. As long as the existing stack at the time of= the GetThreadContext() does not get modified while trying to walk it I d= on't think there would be a problem. I've updated the patch to fix a mingw compile problem and fix some code s= tyle/formatting. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3875 ---------------------------------------- http://redmine.ruby-lang.org
Attachments (1)
---
include/ruby/win32.h | 3 ++
vm_dump.c | 2 +
win32/win32.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 101 insertions(+), 0 deletions(-)
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index 7b6bded..db646b2 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -672,6 +672,9 @@ in asynchronous_func_t.
typedef uintptr_t (*asynchronous_func_t)(uintptr_t self, int argc, uintptr_t* argv);
uintptr_t rb_w32_asynchronize(asynchronous_func_t func, uintptr_t self, int argc, uintptr_t* argv, uintptr_t intrval);
+/* backtrace */
+void rb_w32_backtrace();
+
#if defined __GNUC__ && __GNUC__ >= 4
#pragma GCC visibility pop
#endif
diff --git a/vm_dump.c b/vm_dump.c
index f245ccc..c0199b1 100644
--- a/vm_dump.c
+++ b/vm_dump.c
@@ -616,5 +616,7 @@ rb_vm_bugreport(void)
}
fprintf(stderr, "\n");
}
+#elif _WIN32
+ rb_w32_backtrace();
#endif
}
diff --git a/win32/win32.c b/win32/win32.c
index 46cdafa..8346b8f 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -36,6 +36,9 @@
#ifdef __MINGW32__
#include <mswsock.h>
#endif
+#if _MSC_VER && _M_IX86
+#include <DbgHelp.h>
+#endif
#include "ruby/win32.h"
#include "win32/dir.h"
#define isdirsep(x) ((x) == '/' || (x) == '\\')
@@ -5694,3 +5697,96 @@ signbit(double x)
return *ip < 0;
}
#endif
+
+#if _MSC_VER && _M_IX86
+static struct DumpArgs {
+ DWORD thread_id;
+ HANDLE event;
+};
+
+static void
+dump_thread(void *arg)
+{
+ struct DumpArgs* dump_args = (struct DumpArgs*)arg;
+ HANDLE process = GetCurrentProcess();
+ HANDLE thread = OpenThread(THREAD_ALL_ACCESS, 0, dump_args->thread_id);
+ STACKFRAME64 stackFrame;
+ CONTEXT context;
+ DWORD64 dwDisplacement;
+ DWORD64 dwAddress;
+ char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
+ PSYMBOL_INFO pSymbol = (PSYMBOL_INFO)buffer;
+ IMAGEHLP_LINE64 line;
+ DWORD dwLineDisplacement;
+
+ SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS | SYMOPT_DEBUG |
+ SYMOPT_LOAD_LINES);
+
+ if (!SymInitialize(process, NULL, TRUE)) abort();
+
+ memset(&context, 0, sizeof(CONTEXT));
+ context.ContextFlags = CONTEXT_FULL;
+ if (!GetThreadContext(thread, &context)) abort();
+
+ memset(&stackFrame, 0, sizeof(STACKFRAME64));
+ stackFrame.AddrPC.Mode = AddrModeFlat;
+ stackFrame.AddrPC.Offset = context.Eip;
+
+ stackFrame.AddrFrame.Mode = AddrModeFlat;
+ stackFrame.AddrFrame.Offset = context.Ebp;
+
+ stackFrame.AddrStack.Mode = AddrModeFlat;
+ stackFrame.AddrStack.Offset = context.Esp;
+
+ fprintf(stderr, "-- C level backtrace information "
+ "-------------------------------------------\n");
+
+ while (StackWalk64(IMAGE_FILE_MACHINE_I386, process, thread, &stackFrame,
+ (PVOID)&context, NULL, SymFunctionTableAccess64,
+ SymGetModuleBase64, NULL)) {
+ dwDisplacement = 0;
+ dwAddress = stackFrame.AddrPC.Offset;
+
+ memset(buffer, 0, sizeof(buffer));
+ pSymbol->SizeOfStruct = sizeof(SYMBOL_INFO);
+ pSymbol->MaxNameLen = MAX_SYM_NAME;
+
+ if (SymFromAddr(process, dwAddress, &dwDisplacement, pSymbol)) {
+ fprintf(stderr, "(%s)", pSymbol->Name);
+ }
+
+ memset(&line, 0, sizeof(IMAGEHLP_LINE64));
+ line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
+
+ if (SymGetLineFromAddr64(process, dwAddress, &dwLineDisplacement,
+ &line)) {
+ fprintf(stderr, "(%s:%lu)", line.FileName, line.LineNumber);
+ }
+
+ fprintf(stderr, " [0x%08I64x]\n", dwAddress);
+ }
+ fprintf(stderr, "\n");
+
+ if (!CloseHandle(thread)) abort();
+ if (!SymCleanup(process)) abort();
+ if (!SetEvent(dump_args->event)) abort();
+}
+
+void
+rb_w32_backtrace() {
+ struct DumpArgs dump_args;
+ dump_args.thread_id = GetCurrentThreadId();
+ dump_args.event = CreateEvent(NULL, TRUE, FALSE, NULL);
+ if(!dump_args.event) abort();
+ _beginthread(dump_thread,0,&dump_args);
+
+ if (WaitForSingleObject(dump_args.event, INFINITE) != WAIT_OBJECT_0)
+ abort();
+}
+#else
+void
+rb_w32_backtrace() {
+}
+#endif
+
+
--