metaclass: (Default)
[personal profile] metaclass
Либа nanomsg, кто-то тут в комментариях мне ее посоветовал.
http://comments.gmane.org/gmane.comp.lib.nanomsg/1277
Убил целый день, только ради того, чтобы тесты запустились и сфейлились корректно на машине, на которой рабочий порт этой либы занят чем-то, например другим инстансом проги.

Эти программисты нетрадиционной ориентации зовут на каждый мыслимый и немыслимый чих abort(), вместо того чтобы вернуть код ошибки, а этот abort() на винде вызывает диалоговое окно вида "всему копец, продолжаем, отлаживаем или игнорируем". В консольных приложениях из автотестов, да. Причем cmake ctest на винде игнорирует stderr, соответственно, чтобы найти причину ошибки - мне пришлось сначала перекопать это угребище windbg, а затем добавить OutputDebugString в виндовый билд.

Если у меня от занятости сокетов или там от того, что черви сгрызли сетевой стек, прога будет ебаться с abort() - идите вы нахер с такими либами.

Date: 2014-11-19 07:44 pm (UTC)
From: [identity profile] aamonster.livejournal.com
1. А не проще было перекрыть abort()?
2. Почему 1 в тестах не сделано?

Date: 2014-11-19 10:17 pm (UTC)
From: [identity profile] slonopotamus.livejournal.com
Что значит "перекрыть" в C?

Date: 2014-11-19 11:09 pm (UTC)
From: [identity profile] avnik.livejournal.com
LD_PRELOAD же?
(а может он вообще weak, я не помню таких тонкостей уже)

Date: 2014-11-20 06:12 am (UTC)
From: [identity profile] slonopotamus.livejournal.com
Первый пришедший в голову пример:

char *foo(char *a) {
  if (!b) {
    abort();
  }
  return b->func(a);
}


И как вы хотите это чинить LD_PRELOAD'ом?
Edited Date: 2014-11-20 06:12 am (UTC)

Date: 2014-11-20 06:38 am (UTC)
From: [identity profile] aamonster.livejournal.com
Зачем чинить? Речь о тестах. Пришёл abort - тест зафейлен.

Date: 2014-11-20 06:37 am (UTC)
From: [identity profile] aamonster.livejournal.com
signal(SIGABRT, &my_function_to_handle_aborts);
_set_abort_behavior
Ищется с ходу по словам abort override.

А вообще в C при необходимости перекрывается всё, но это уже хак.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 8th, 2025 12:34 pm
Powered by Dreamwidth Studios