Mercurial > hg > graal-compiler
comparison src/share/vm/prims/jvmtiEnvThreadState.cpp @ 18041:52b4284cb496
Merge with jdk8u20-b26
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 16:02:50 +0200 |
parents | 89152779163c 78bbf4d43a14 |
children |
comparison
equal
deleted
inserted
replaced
17606:45d7b2c7029d | 18041:52b4284cb496 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
111 int n = _pops->length(); | 111 int n = _pops->length(); |
112 for (int i=0; i<n; i++) { | 112 for (int i=0; i<n; i++) { |
113 JvmtiFramePop fp = JvmtiFramePop(_pops->at(i)); | 113 JvmtiFramePop fp = JvmtiFramePop(_pops->at(i)); |
114 tty->print("%d: ", i); | 114 tty->print("%d: ", i); |
115 fp.print(); | 115 fp.print(); |
116 tty->print_cr(""); | 116 tty->cr(); |
117 } | 117 } |
118 } | 118 } |
119 #endif | 119 #endif |
120 | 120 |
121 /////////////////////////////////////////////////////////////// | 121 /////////////////////////////////////////////////////////////// |
270 ResourceMark rmark; // _thread != Thread::current() | 270 ResourceMark rmark; // _thread != Thread::current() |
271 RegisterMap rm(_thread, false); | 271 RegisterMap rm(_thread, false); |
272 // There can be a race condition between a VM_Operation reaching a safepoint | 272 // There can be a race condition between a VM_Operation reaching a safepoint |
273 // and the target thread exiting from Java execution. | 273 // and the target thread exiting from Java execution. |
274 // We must recheck the last Java frame still exists. | 274 // We must recheck the last Java frame still exists. |
275 if (_thread->has_last_Java_frame()) { | 275 if (!_thread->is_exiting() && _thread->has_last_Java_frame()) { |
276 javaVFrame* vf = _thread->last_java_vframe(&rm); | 276 javaVFrame* vf = _thread->last_java_vframe(&rm); |
277 assert(vf != NULL, "must have last java frame"); | 277 assert(vf != NULL, "must have last java frame"); |
278 Method* method = vf->method(); | 278 Method* method = vf->method(); |
279 _method_id = method->jmethod_id(); | 279 _method_id = method->jmethod_id(); |
280 _bci = vf->bci(); | 280 _bci = vf->bci(); |