Некоторые протесты об использовании LINQ к SQL:
Microsoft действительно уничтожила LINQ к SQL?
существуют также [приблизительно 112] противоречие о первой версии Платформа Объекта , включая прошение .
Это постоянная проблема для людей, которые разрабатывают файловые системы FUSE. Эта ссылка может помочь (это буквально слишком много, чтобы объединить в одном ответе). Обход включает своевременную замену fusermount и (в зависимости от) некоторые дополнительные параметры valgrind, чтобы предотвратить отслеживание дочерних элементов.
Фактически, если вы запустите мою FS под valgrind, вы получите следующий результат (да, у достаточного количества людей была эта проблема, я действительно обнаружил valgrind при запуске и показал ссылку):
root@tower:~ # valgrind xsfs /xs
==9479== Memcheck, a memory error detector.
==9479== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==9479== Using LibVEX rev 1884, a library for dynamic binary translation.
==9479== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==9479== Using valgrind-3.4.1, a dynamic binary instrumentation framework.
==9479== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==9479== For more details, rerun with: -v
==9479==
******** Valgrind has been detected by xsfs
******** If you have difficulties getting xsfs to work under Valgrind,
******** see the following thread:
******** http://www.nabble.com/valgrind-and-fuse-file-systems-td13112112.html
******** Sleeping for 5 seconds so this doesn't fly by ....
Самая простая вещь - все вашей отладки на одноразовой виртуальной машине, работающей с правами root, где вы можете просто отказаться от бит setuid и покончить с этим. Убедитесь, что вы протестировали свой код на отсутствие утечек или нарушений, это достаточно просто, чтобы протестировать любой код связанной библиотеки, не использующий fuse. Передайте свою сборку 'valgrind-clean' и обратите внимание, что вы сделали это в документации.
Затем возьмите несколько битов из valgrind / valgrind.h
, чтобы обнаружить это, и покажите короткий сообщение для тех, кто продолжает и все равно запускает его. Хаки для обхода этой проблемы требуют сотрудничества с root-правами, и, честно говоря, намного проще сделать в песочнице.
Также достаточно просто отказаться от запуска под valgrind с установленным битом setuid, показывая полезное сообщение для людей, которые могут выключить , если они действительно этого хотят.
Я полагаю, что самым простым ответом будет удаление битов setuid / setgid во время отладки. Конечно, если программе действительно нужны привилегии root, вам, вероятно, придется запускать valgrind как root, или, поскольку сам valgrind кажется установленным, просто выберите его как root: root. Если вы запустите valgrind после этого, он будет иметь права root (как и дочерние - отлаженные процессы).
После этого вы сможете запустить valgrind в этом приложении.
Просто будьте осторожны, потому что вы будете вводить БОЛЬШАЯ дыра в безопасности вашей системы. Более безопасным решением было бы создать специальную группу только для пользователей, которые должны иметь возможность запускать (setuid) valgrind и переходить оттуда ...
Запустите команду valgrind от имени пользователя root (или любого другого пользователя set-uid), тогда программе не придется использовать установку uid.
Я предполагаю, что вы пробовали запустить его с --trace-children = no? Если у вас есть root-доступ, похоже, есть обходной путь здесь .