MacOS X 10.9 и 10.9.1 содержат ошибку Finder, которая обнаруживается при использовании серверов SMB v2. (Эта ошибка передана Apple и кратко описана здесь:ошибка smb v2 Finder / Mavericks).

С помощью man nsmb.conf я обнаружил, что возможен уровень отладки ядра:

 Possible keywords may include:

 Keyword       Section    Default    Comment
               A B C      Values
 [...]
 kloglevel     + - -      0          Turn on smb kernel logging

Но это бесполезно, если я даже не знаю, является ли это битовым шаблоном или целым числом.

Поиск в дереве исходного кода ядра, я хотел бы найти, где этот уровень отладки используется и как.

Как можно найти источник (файл .c или .h), который определяет или использует этот уровень отладки?

1 ответ1

1

Необходимые источники находятся здесь:

Apple MacOS X 10.9 с открытым исходным кодом в:    

smb-697-1.1

После загрузки этот архив должен быть дополнен:

gzcat smb-697.1.1.tar.gz | tar xvf -

В пределах этого дерева источников соответствующие источники могут быть идентифицированы как:

cd smb-697.1.1
find . -type f -exec grep -H -i loglevel {} \;

И наконец мы находим, что:

kernel/smbfs/smbfs_vfsops.c

инициализирует:

smbfs_loglevel =  args->KernelLogLevel;

и это:

kernel/netsmb/smb_subr.h

определяет:

#define SMB_NO_LOG_LEVEL                0x00
#define SMB_LOW_LOG_LEVEL               0x01
#define SMB_ACL_LOG_LEVEL               0x02
#define SMB_IO_LOG_LEVEL                0x04
#define SMB_AUTH_LOG_LEVEL              0x08

и использует:

if (smbfs_loglevel & SMB_AUTH_LOG_LEVEL) \

Следовательно, kloglevel - это битовый паттерн на 4 бита.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .