-k опция - то, что Вы хотите.
-k 1.4,1.5n -k 1.14,1.15n
использовал бы позиции символа 4-5 в первом поле (это - все одно поле для фиксированной ширины), и вид численно как первый ключ.
второй ключ был бы символами 14-15 в первом поле также.
(редактирование)
Пример (все я имею, DOS/cygwin удобный):
dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r
для данных:
12/10/2008 01:10 PM 1,564,990 outfile.txt
Виды список каталогов числом месяца (на месте продажи 4-5) численно, и затем именем файла (на месте продажи 40-60) наоборот. С тех пор нет никаких вкладок, это - все поле 1 к виду.
См. RtlGetUnloadEventTrace и RtlGetUnloadEventTraceEx .
Я не совсем уверен в том, как это работает, но считаю, что фактический список хранится в ntdll .dll в коде загрузчика. Он отслеживает 16 (или 64, согласно MSDN) последние выгруженные библиотеки DLL в конкретном процессе. Информация не связана с PEB или PEB_LDR_DATA.
WinDbg может просто создать сам список. Отладчик в Windows будет получать события загрузки и выгрузки модуля по мере выполнения программы. Таким образом, отладчику просто нужно будет следить за этими событиями и обновлять списки по мере их поступления.
См .: http://msdn.microsoft.com/en-us/library/ms679308%28VS.85%29. aspx
, в частности, части о UNLOAD_DLL_DEBUG_INFO
и LOAD_DLL_DEBUG_INFO
.
Я рекомендую вам это сделать, я не знаю ни одного внутреннего списка, который отслеживает [1153177178] выгруженных ], в конце концов, сама ОС не нуждается в таких данных.
Если вам это нужно только для собственного процесса, это не так. необходимо найти список, так как собственный процесс не может загружать какие-либо библиотеки, поэтому выгруженных нет. Но с технической точки зрения мне любопытно, где находятся выгруженные данные в процессе.
Я рискну предположить, что это разница между модулями, перечисленными в таблице импорта exe, и модулями, загруженными в данный момент.