Задать вопрос
  • Как правильно словить core dump?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    1) будет ли это - ulimit -c unlimited активно для следующей сессии, и будет ли вообще работать ?

    Нет. Чтобы настроить ulimit по умолчанию -- см. man limits.conf

    2) где мне потом искать этот core. файл

    Зависит от /proc/sys/kernel/core_pattern, для вашего примера -- в текущем каталоге упавшего процесса. Вообще core_pattern -- это просто путь до файла с возможностью подстановки некоторых параметров процесса через %*.
    См. man core.
    Ответ написан
    Комментировать
  • Как вывести формулу из дизассемблерного кода?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как вывести формулу из дизассемблерного кода

    Выписав выражения элементарных математических действий соответствующих ассемблерным командам и подставив выражения друг в друга, согласно тому, как использованы регистры и переменные в памяти.
    Например:
    mov 0x10(%ebp),%edx
    -- это "поместить в edx третий параметр функции (назовём их a (0x8(%ebp)), b (0xc(%ebp)) и c (0x10(%ebp))): edx = c"

    mov %edx,%eax
    -- "поместить в eax edx, который равен c, т.е. eax = c"

    shl $0x2,%eax
    -- сдвинуть eax на 2 влево, т.е. умножить на 4, т.е. eax = c * 4

    и т. д.

    Результат -- то что останется в eax перед возвратом.
    Ответ написан
    Комментировать
  • Скрипт (или программа) для сравнения данных в двух каталогах?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Бескостыльный метод сравнить содержимое двух каталогов -- выполнить
    find -type f -print0 | xargs -0 sha1sum | sort > result
    в этих каталогах, а потом сравнить файлы result, например командой diff.
    Ответ написан
    Комментировать
  • Системные вызовы в Linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вы уверены, что понимаете, что такое "системный вызов", и чем он отличается от вызова функции system?
    Ответ написан
    6 комментариев
  • Чем ASEM51 отличается от A51?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    чем кросс-ассемблер отличается от макроассемблера?

    Макроассемблер -- это ассемблер поддерживающий макросы.
    Кросс-ассемблер -- это ассемблер, генерирующий код для процессора, архитектура которого отлична от той, на которой он сам выполняется.
    Макроассемблер может быть кросс-ассемблером.
    Ответ написан
    Комментировать
  • Странно работает rand(). В чем проблема?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    С помощью неё я формирую массив,

    Т.е. вызываешь её в цикле, т.е. вызываешь srand(static_cast(time(0))); много раз за короткое время. Продолжать?
    Вопрос: зачем ты это делаешь внутри этой функции?
    Ответ написан
    Комментировать
  • Как работает bridge на уровне ядра?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Кто может продолжить цепочку: реальное устройство eth0 инициирует прерывание -> процессор смотрит в таблице прерываний откуда брать код драйвера, а что дальше

    Слишком глубоко копнул: если тебя интересует именно бриджевание, то зачем разбираться в том, как драйвер сетевухи взаимодействует с ядром, если код бриджевания в линуксе не зависит от того, как сетевой пакет попал в систему.

    Очень грубо: если сетевой пакет получен с одного из интерфейсов-слейвов бриджа -- посмотреть, есть ли для его адреса назначения запись в forwarding database, если есть -- переслать пакет в интерфейс из этой записи, если нет -- переслать во все интерфейсы этого бриджа, кроме того, через который пакет был получен.

    Если хочется подробностей, можно почитать тут: it-ebooks.info/book/2195
    Или тут: https://git.kernel.org/cgit/linux/kernel/git/torva... , там всего пара интересных файлов, по 500 строчек каждый.
    Ответ написан
    1 комментарий
  • Что делать, если screen не реагирует на ввод?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Спасает только принудительный (и крайне нежелательный) перезапуск сессии.

    Можно убить одно зависшее окошко командой ^a-K

    Есть ли другое решение?

    Разобраться почему виснет. Типичная причина -- случайное нажатие ^s или ^a-s. Лечится нажатием ^q или ^a-q.
    Ответ написан
    Комментировать
  • На каком форуме задавать вопросы касательно: Android, JNI, NativeActivity, отладка JNI lib без исходников, их реверс-инжиниринг, - почти что хакинг?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    есть JNI-библиотека вида lib.so. NativeActivity.
    ...
    я не умею дизассемблировать библиотеки такие.

    Берёшь objdump из тулчейна которым собрана либа и выполняешь objdump -xd lib.so.NativeActivity.
    Задавай уточняющие вопросы: непонятно, с чем именно у тебя сложности.
    Ответ написан
    9 комментариев
  • Как узнать разрядность ubuntu?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    какая разрядность была установлена

    Разрядность ядра -- grep CONFIG_64BIT /boot/config*
    Разрядность юзерспейса -- по наличию /lib64
    Ответ написан
    Комментировать
  • Подключение к нескольким серверам OpenVPN, не работают сетевые туннели (tun1,tun2), кроме tun0, в чем проблема?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    inet addr:10.200.1.153 P-t-P:10.200.1.153 Mask:255.255.252.0

    tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    inet addr:10.200.1.204 P-t-P:10.200.1.204 Mask:255.255.252.0

    Оба интерфейса в одной подсети.
    Ответ написан
  • Как в KVM или QEMU запустить не сжатое ядро системы?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    для иследовательских целей хотелось бы запустить не сжатое ядро системы, кто может что подсказать

    А почему вы думаете, что это вообще возможно? vmlinux должен быть рассчитан на прямую загрузку и это действительно поддерживается для некоторых конфигураций некоторых архитектур. Но не для всех.
    И, да -- что вы ожидаете от загрузки несжатого ядра, чего вам не даст загрузка сжатого?
    Ответ написан
    6 комментариев
  • Возможно ли применить такое условие?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    if (arr[0] == arr[1] == arr[2])

    Результат выполнения операции == в С++ -- это bool, а bool конвертируется в int.
    Запись в скобках эквивалентна (a[0] == a[1]) == a[2] и сравнивает a[2] с результатом сравнения a[0] и a[1] (0 если они не равны, 1 если равны). Т.е. 1 == 1 == 1 -- это истина, поскольку (1 == 1) -- истина, истина сконвертированная в int -- это 1, а 1 == 1 -- это истина.

    почему сравнение значений массива по индексу работает не так, как с обычными переменными

    Точно так же оно работает.

    как мне добиться нужного результата?

    if (arr[0] == arr[1] && arr[1] == arr[2])
    Ответ написан
    Комментировать
  • Сборка монолитного ядра? Как же оно работает?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    мне нужно собрать довольно специфическое тонкое и главное монолитное ядро

    Хорошо было бы, если бы вы объяснили зачем.

    как я понял чтобы сделать его монолитным надо убрать галочку(или даже все пункты) в меню "Enable loadable module support" так ли это?

    Чтобы сделать его монолитным достаточно вкомпилировать все нужные опции в ядро.

    почему оно все еще некоторые вещи в меню разрешает ставить как [M]?

    Пока "Enable loadable module support"=y можно поставить M в пунктах поддерживающих модульность.

    верно ли что молонитное ядро не может включать себя новые устройства, драйвера которых не были предопределены при сборке ядра ???

    Ядро без поддержки модулей не может.
    Ответ написан
    Комментировать
  • Можно ли узнать из функции указатель на переменную, куда она возвращает значение, без явного указания его в параметрах О_о?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно ли узнать из функции указатель на переменную, куда она возвращает значение

    В общем случае -- нет. Если возвращаемое значение -- примитивный тип или маленькая структура (влезающая в 1 - 2 регистра, в зависимости от ABI), то это значение возвращается в регистре/регистрах и может вообще нигде не записываться в память. Если возвращается большая структура, то адрес, по которому она должна быть записана, передаётся в функцию как дополнительный скрытый параметр.
    Ответ написан
    3 комментария
  • Глобальная переменная имеет разные адреса в разных потоках, почему?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    глобальная переменная имеет разный адрес в разных потоках

    Просто глобальная, если она не TLS -- вряд ли. Строчку с определением переменной покажите.
    Ответ написан
    Комментировать
  • Ссылки на функции?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему примеров его использования нигде не заметно, удобнее ведь вместо константного указателя.

    Чем удобнее-то? Ссылку нужно инициализировать в момент создания и нельзя изменить потом. Функцию в C++ нельзя создать или вернуть из функции, зачем ссылка?
    Ответ написан
    3 комментария
  • Не стартует cron на FreeBSD 10.1. Что делать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    А если запустить с отладочной информацией но без отладчика -- падает?
    В этой вашей BSD есть core-дампы? Если есть -- пусть сгенерирует, загрузите его в gdb и посмотрите.
    Ответ написан
    6 комментариев
  • Почему возникает ошибка incompatible types when assigning to type?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    table = fizz(table);

    Что сделать-то хотел?
    Если проинициализировать массив значением которое вернула fizz, нужно было просто проинициализировать его в этой функции.
    Если поменять область памяти на которую указывает table, то нужно было сделать table указателем.

    Почему при передаче table в fizz struct Item[100] преобразуется в struct Item *table, а при присваивании - нет?

    Потому что массив -- это синтаксис для статического выделения памяти на стеке, в области данных или в структурах. Имя массива -- это имя этого блока памяти, а его адрес -- адрес этого блока. Поэтому имя массива можно легко сконвертировать в адрес. Но если бы язык давал возможность менять адрес массива с помощью присваивания его имени, массив помимо своих элементов должен бы был содержать дополнительный указатель. Получился бы странный, сложный класс объектов, соединяющий в себе свойства массива и указателя. Поскольку язык С -- простой язык, у вас есть отдельно массивы и отдельно указатели, а сложный тип можно сделать самому.
    Ответ написан
    Комментировать
  • Почему ошибка при выполнении sizeof()?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Потому что sizeof(test1) используется до определения класса test1.
    если размещаю эту функцию вне самого класса (int test::size()) то все нормально

    А попробуй разместить её выше определения class test1.
    Ответ написан
    Комментировать