LD_DEBUG и Java - PullRequest
       12

LD_DEBUG и Java

1 голос
/ 19 апреля 2010

Когда я установил LD_DEBUG = files и запустил свою программу на Java, я обнаружил много ошибок, таких как:

/linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal)  

Эта информация ужасна, но, очевидно, моя программа работает нормально. Может кто-нибудь сказать мне, почему это происходит?

1 Ответ

1 голос
/ 19 апреля 2010

Это не ужасно; это то, что происходит, когда вы создаете код для запуска на разных платформах. Это просто jvm ищет дополнительные символы. В этом случае что-то делать с 2D и альфа-композитингом. Существует альтернативный путь кода, который используется, если символ не найден во время выполнения. Вы можете думать об этом как об отражении для библиотек.

Код jvm выглядит примерно так:

TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol));
if (fptr != NULL) {
    // Do something different because this platform supports 'symbol'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...