The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите отладить..., !*! ki11er, 11-Июл-02, 17:42  [смотреть все]
Есть не очень сложная многопоточная программа. Работает под Win и Linux. Под Win все проверено/перепроверено. Никаких утечек и т.д. и т.п. Работает как часы. Под Linux'ом - сваливается. Причем в gdb не могу причину установить ;-)

---Type <return> to continue, or q <return> to quit---Program received signal SIGSEGV, Segmentation fault.0x0 in ?? ()(gdb) bt#0  0x0 in ?? ()#1  0x804dd82 in txList::_at_ (this=0xbffffd20, i=0) at txlist.cxx:52#2  0x80495c8 in main (argc=2, argv=0xbffffd64) at ../layer1/inc/txlist.h:115(gdb)

Вот код:

const txListNode* txList::_at_ (int i) const
{
    if (i >= entries())  /* !!! Строка 52 */
    {
        return 0;
    }

    register txListNode* node = _head_._next;

    while (i--)
    {
        node = node->_next;
    }

    return node;
}

int entries (void) const
        {
            return _entries_;
        }

Похоже, что стек разрушается, т.к.:

(gdb) disass $eip $eip+20
Dump of assembler code from 0x0 to 0x14:
0x0:    Cannot access memory at address 0x0.
(gdb)

Но как найти _ГДЕ_ ?

  • RE: Помогите отладить..., !*! genie, 04:32 , 12-Июл-02 (1)
    Naskol'ko ya ponimau, entries - eto kolichestvo elementov v spiske. No v multithreaded environment eto kolichestvo mozhet pomenyat'sya iz drugogo thread. Poetomu (ya dazhe ne govoru o locking) - luchshe sdelat' tak:
    while(i-- && node) { node=node->_next; }


    • RE: Помогите отладить..., !*! ki11er, 13:36 , 12-Июл-02 (2)
      >Naskol'ko ya ponimau, entries - eto kolichestvo elementov v spiske. No v
      >multithreaded environment eto kolichestvo mozhet pomenyat'sya iz drugogo thread. Poetomu (ya
      >dazhe ne govoru o locking) - luchshe sdelat' tak:
      >while(i-- && node) { node=node->_next; }

      Этот список заполняется только один раз при старте программы из основного треда и периодически читается только из этого же треда.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру