Segfaults in error traces caused by modules
Alan Bateman
Alan.Bateman at oracle.com
Wed Nov 9 11:03:41 UTC 2016
On 09/11/2016 11:42, Andrew Haley wrote:
> I'm seeing repeated segfaults in error traces. These seem to be caused by
>
> void frame::print_on_error(outputStream* st, char* buf, int buflen, bool verbose) const {
> if (_cb != NULL) {
> if (Interpreter::contains(pc())) {
> Method* m = this->interpreter_frame_method();
> if (m != NULL) {
> m->name_and_sig_as_C_string(buf, buflen);
> st->print("j %s", buf);
> st->print("+%d", this->interpreter_frame_bci());
> ModuleEntry* module = m->method_holder()->module();
> if (module->is_named()) {
> module->name()->as_C_string(buf, buflen);
> st->print(" %s", buf);
> module->version()->as_C_string(buf, buflen);
>
> where module->version() returns NULL.
>
>
The version is optional and so modules may be defined to the VM with a
version string of NULL. It may be that this code has only been tested
with images builds, where the platform modules have version ("9" or
"9-internal" ...). However with an exploded build then the platform
modules don't have a version string and I assume this is where you hit this.
-Alan
More information about the hotspot-dev
mailing list