You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2008/02/05 05:59:36 UTC
svn commit: r618542 - in /harmony/enhanced/drlvm/trunk/vm/vmcore/src/util:
ipf/base/native_stack_ipf.cpp ipf/base/signals_arch.cpp linux/signals_ipf.cpp
Author: varlax
Date: Mon Feb 4 20:59:35 2008
New Revision: 618542
URL: http://svn.apache.org/viewvc?rev=618542&view=rev
Log:
Applied HARMONY-5455 [drlvm][signals] IPF build is failed to run because of absent symbol
Added:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp (with props)
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/native_stack_ipf.cpp
harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/linux/signals_ipf.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/native_stack_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/native_stack_ipf.cpp?rev=618542&r1=618541&r2=618542&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/native_stack_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/native_stack_ipf.cpp Mon Feb 4 20:59:35 2008
@@ -24,7 +24,6 @@
void native_get_frame_info(Registers* regs, void** ip, void** bp, void** sp)
{
// FIXME: not implemented
- abort();
}
bool native_unwind_bp_based_frame(void* frame, void** ip, void** bp, void** sp)
Added: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp?rev=618542&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp (added)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp Mon Feb 4 20:59:35 2008
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include "vm_core_types.h"
+
+void print_reg_state(Registers* regs)
+{
+ fprintf(stderr, "Registers:");
+
+ for (int gn = 0; gn < 8; gn++)
+ {
+ fprintf(stderr, "\n GR %2d-%2d:", gn*4, (gn+1)*4 - 1);
+ for (int gc = 0; gc < 4; gc++)
+ fprintf(stderr, " 0x%"W_PI_FMT, regs->gr[gn*4 + gc]);
+ }
+
+ for (int bn = 0; bn < 2; bn++)
+ {
+ fprintf(stderr, "\n BR %2d-%2d:", bn*4, (bn+1)*4 - 1);
+ for (int bc = 0; bc < 4; bc++)
+ fprintf(stderr, " 0x%"W_PI_FMT, regs->br[bn*4 + bc]);
+ }
+
+ fprintf(stderr, "\n");
+ fprintf(stderr, " preds: 0x%"W_PI_FMT"\n", regs->preds);
+ fprintf(stderr, " nats: 0x%"W_PI_FMT"\n", regs->nats);
+ fprintf(stderr, " pfs: 0x%"W_PI_FMT"\n", regs->pfs);
+ fprintf(stderr, " bsp: 0x%"W_PI_FMT"\n", (POINTER_SIZE_INT)regs->bsp);
+ fprintf(stderr, " *bsp: 0x%"W_PI_FMT"\n", regs->bsp ? (*regs->bsp) : 0);
+ fprintf(stderr, " ip: 0x%"W_PI_FMT"\n", regs->ip);
+}
Propchange: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/ipf/base/signals_arch.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/linux/signals_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/linux/signals_ipf.cpp?rev=618542&r1=618541&r2=618542&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/linux/signals_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/linux/signals_ipf.cpp Mon Feb 4 20:59:35 2008
@@ -434,7 +434,18 @@
{
ucontext_t *uc = (ucontext_t *)context;
Global_Env *env = VM_Global_State::loader_env;
+ Registers regs;
+ ucontext_to_regs(®s, uc);
+ if (!p_TLS_vmthread)
+ {
+ if (!is_gdb_crash_handler_enabled() ||
+ !gdb_crash_handler(®s))
+ {
+ // print stack trace
+ sd_print_stack(®s);
+ }
+ }
/* Will not compile on IPF:
TRACE2("signals", "NPE or SOE detected at " <<
@@ -452,8 +463,6 @@
}
}
fprintf(stderr, "SIGSEGV in VM code.\n");
- Registers regs;
- ucontext_to_regs(®s, uc);
// setup default handler
signal(signum, SIG_DFL);