Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюки библиотеки mysqlclient 
:(
    Опции темы
alltouch
Дата 12.10.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Есть сяшный код:
Код

int main()
{
return 0;
}

Компилим его:
Код

g++ test.cpp -lmysqlclient

Запускаем его:
Код

valgrind -v ./a.out

Команда valgrind пишет про ошибки:
Код

==8974== Memcheck, a memory error detector for x86-linux.
==8974== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==8974== Using valgrind-2.4.0, a program supervision framework for x86-linux.
==8974== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==8974== Valgrind library directory: /usr/lib/valgrind
==8974== Command line
==8974==    ./a.out
==8974== Startup, with flags:
==8974==    -v
==8974== Contents of /proc/version:
==8974==   Linux version 2.6.15-HN-2.2-P4 (root@raidbak) (gcc version 3.3.6 (Debian 1:3.3.6-10)) #1 SMP PREEMPT Wed Feb 22 10:15:05 EST 2006
==8974== Reading syms from /var/www/music/parser/1/a.out (0x8048000)
==8974==    object doesn't have any debug info
==8974== Reading syms from /lib/ld-2.4.90.so (0x1B8E4000)
==8974==    object doesn't have any debug info
==8974== Reading syms from /usr/lib/valgrind/stage2 (0xB0000000)
==8974== Reading syms from /lib/ld-2.4.90.so (0xB1000000)
==8974==    object doesn't have any debug info
==8974== Reading syms from /usr/lib/valgrind/vgskin_memcheck.so (0xB7C11000)
==8974== Reading syms from /lib/libc-2.4.90.so (0xB7E71000)
==8974==    object doesn't have any debug info
==8974== Reading syms from /lib/libdl-2.4.90.so (0xB7FAE000)
==8974==    object doesn't have any debug info
==8974== Reading suppressions file: /usr/lib/valgrind/default.supp
==8974==
==8974== Reading syms from /usr/lib/valgrind/vg_inject.so (0x1B902000)
==8974== Reading syms from /usr/lib/valgrind/vgpreload_memcheck.so (0x1B905000)
==8974== Reading syms from /usr/lib/libmysqlclient.so.14.0.0 (0x1B914000)
./a.out: error while loading shared libraries: libmysqlclient.so.14: cannot enable executable stack as shared object requires: Invalid argument
==8974== Jump to the invalid address stated on the next line
==8974==    at 0x536: ???
==8974==    by 0x1B8F1E45: _dl_signal_error (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F10F4: _dl_map_object_deps (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E74CD: dl_main (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F78BA: _dl_sysdep_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E5377: _dl_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E48D6: (within /lib/ld-2.4.90.so)
==8974==  Address 0x536 is not stack'd, malloc'd or (recently) free'd
==8974==
==8974== Process terminating with default action of signal 11 (SIGSEGV)
==8974==  Access not within mapped region at address 0x536
==8974==    at 0x536: ???
==8974==    by 0x1B8F1E45: _dl_signal_error (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F10F4: _dl_map_object_deps (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E74CD: dl_main (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F78BA: _dl_sysdep_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E5377: _dl_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E48D6: (within /lib/ld-2.4.90.so)
==8974==
==8974== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==8974==
==8974== 1 errors in context 1 of 1:
==8974== Jump to the invalid address stated on the next line
==8974==    at 0x536: ???
==8974==    by 0x1B8F1E45: _dl_signal_error (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F10F4: _dl_map_object_deps (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E74CD: dl_main (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8F78BA: _dl_sysdep_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E5377: _dl_start (in /lib/ld-2.4.90.so)
==8974==    by 0x1B8E48D6: (within /lib/ld-2.4.90.so)
==8974==  Address 0x536 is not stack'd, malloc'd or (recently) free'd
==8974== IN SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==8974==
==8974== malloc/free: in use at exit: 0 bytes in 0 blocks.
==8974== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==8974==
==8974== No malloc'd blocks -- no leaks are possible.
--8974--     TT/TC: 0 tc sectors discarded.
--8974--            905 tt_fast misses.
--8974-- translate: new     905 (16952 -> 219618; ratio 129:10)
--8974--            discard 0 (0 -> 0; ratio 0:10).
--8974-- chainings: 544 chainings, 0 unchainings.
--8974--  dispatch: 4493 jumps (bb entries); of them 1152 (25%) unchained.
--8974--            1/936 major/minor sched events.
--8974-- reg-alloc: 241 t-req-spill, 38955+1936 orig+spill uis,
--8974--            5146 total-reg-rank
--8974--    sanity: 2 cheap, 1 expensive checks.
--8974--    ccalls: 3102 C calls, 51% saves+restores avoided (9434 bytes)
--8974--            4218 args, avg 0.87 setup instrs each (1072 bytes)
--8974--            0% clear the stack (9306 bytes)
--8974--            1462 retvals, 24% of reg-reg movs avoided (692 bytes)


В чем прикол?? так нельзя компилить?? или это глюк с библиотекой??? (при этом на другом серваке все работает нормально и никаких глюков не выдает) как это может повлиять на работу с базы данных????
PM MAIL   Вверх
MAKCim
Дата 12.10.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

В чем прикол?? так нельзя компилить??

можно
Цитата

или это глюк с библиотекой???

вероятно
напиши вывод strace ./a.out



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
alltouch
Дата 12.10.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Код

[localhost]$ strace ./a.out
execve("./a.out", ["./a.out"], [/* 21 vars */]) = 0
brk(0)                                  = 0x804a000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f01000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=27073, ...}) = 0
mmap2(NULL, 27073, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7efa000
close(3)                                = 0
open("/usr/lib/libmysqlclient.so.14", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\334"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1278089, ...}) = 0
mmap2(NULL, 1196832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dd5000
mmap2(0xb7e1d000, 901120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x47) = 0xb7e1d000
mmap2(0xb7ef9000, 800, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ef9000
mprotect(0xbfc01000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
close(3)                                = 0
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\326\3"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=929584, ...}) = 0
mmap2(NULL, 956036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ceb000
mmap2(0xb7dca000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xde) = 0xb7dca000
mmap2(0xb7dcf000, 22148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7dcf000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0%\277"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=208340, ...}) = 0
mmap2(0x4bbef000, 155776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4bbef000
mmap2(0x4bc14000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24) = 0x4bc14000
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\327\330"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=46468, ...}) = 0
mmap2(0x4bd8c000, 48036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4bd8c000
mmap2(0x4bd97000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa) = 0x4bd97000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\0\254"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1575576, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cea000
mmap2(0x4baaa000, 1295780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4baaa000
mmap2(0x4bbe1000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x137) = 0x4bbe1000
mmap2(0x4bbe4000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4bbe4000
close(3)                                = 0
open("/lib/libcrypt.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\227\305"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=27832, ...}) = 0
mmap2(0x4bc59000, 184636, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4bc59000
mmap2(0x4bc5e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4) = 0x4bc5e000
mmap2(0x4bc60000, 155964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4bc60000
close(3)                                = 0
open("/lib/libnsl.so.1", O_RDONLY)      = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\21\312"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=96892, ...}) = 0
mmap2(0x4bc9e000, 87848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4bc9e000
mmap2(0x4bcb0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11) = 0x4bcb0000
mmap2(0x4bcb2000, 5928, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4bcb2000
close(3)                                = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\31"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=46736, ...}) = 0
mmap2(NULL, 41616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cdf000
mmap2(0xb7ce8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7ce8000
close(3)                                = 0
open("/lib/libnss_dns.so.2", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\f\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=21844, ...}) = 0
mmap2(NULL, 20612, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cd9000
mmap2(0xb7cdd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xb7cdd000
close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\261"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=76388, ...}) = 0
mmap2(0x4bc89000, 75976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4bc89000
mmap2(0x4bc98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe) = 0x4bc98000
mmap2(0x4bc9a000, 6344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4bc9a000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cd8000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cd7000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7cd76d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x4bc98000, 4096, PROT_READ)   = 0
mprotect(0xb7cdd000, 4096, PROT_READ)   = 0
mprotect(0xb7ce8000, 4096, PROT_READ)   = 0
mprotect(0x4bcb0000, 4096, PROT_READ)   = 0
mprotect(0x4bc5e000, 4096, PROT_READ)   = 0
mprotect(0x4bbe1000, 8192, PROT_READ)   = 0
mprotect(0x4bc14000, 4096, PROT_READ)   = 0
mprotect(0xb7dca000, 12288, PROT_READ)  = 0
mprotect(0xb7dd5000, 294912, PROT_READ|PROT_WRITE) = 0
mprotect(0xb7dd5000, 294912, PROT_READ|PROT_EXEC) = 0
mprotect(0x4baa6000, 4096, PROT_READ)   = 0
munmap(0xb7efa000, 27073)               = 0
exit_group(0)                           = ?

PM MAIL   Вверх
MAKCim
Дата 13.10.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

open("/usr/lib/libmysqlclient.so.14", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\334"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1278089, ...}) = 0
mmap2(NULL, 1196832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dd5000

ну с загрузкой все в порядке
твоя либа отображается на память процесса
так что не знаю


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.