e0cdfe3 Add type for $_tlb->process_environment_block->process_parameters

Authored and Committed by Hannes Domani 4 years ago
    Add type for $_tlb->process_environment_block->process_parameters
    
    The type then looks like this:
    
    (gdb) pt $_tlb->process_environment_block->process_parameters
    type = struct rtl_user_process_parameters {
        DWORD32 maximum_length;
        DWORD32 length;
        DWORD32 flags;
        DWORD32 debug_flags;
        void *console_handle;
        DWORD32 console_flags;
        void *standard_input;
        void *standard_output;
        void *standard_error;
        unicode_string current_directory;
        void *current_directory_handle;
        unicode_string dll_path;
        unicode_string image_path_name;
        unicode_string command_line;
        void *environment;
        DWORD32 starting_x;
        DWORD32 starting_y;
        DWORD32 count_x;
        DWORD32 count_y;
        DWORD32 count_chars_x;
        DWORD32 count_chars_y;
        DWORD32 fill_attribute;
        DWORD32 window_flags;
        DWORD32 show_window_flags;
        unicode_string window_title;
        unicode_string desktop_info;
        unicode_string shell_info;
        unicode_string runtime_data;
    } *
    
    It's mainly useful to get the current directory, or the full command line:
    
    (gdb) p $_tlb->process_environment_block->process_parameters->current_directory
    $1 = {
      length = 26,
      maximum_length = 520,
      buffer = 0xe36c8 L"C:\\src\\tests\\"
    }
    (gdb) p $_tlb->process_environment_block->process_parameters->command_line
    $2 = {
      length = 94,
      maximum_length = 96,
      buffer = 0xe32aa L"\"C:\\gdb\\build64\\gdb-git\\gdb\\gdb.exe\" access.exe"
    }
    
    The type names are all lowercase because the existing types created
    by windows_get_tlb_type are also lowercase.
    
    Type unicode_string is documented at [1].
    The official documentation [2] for rtl_user_process_parameters is limited,
    so I've used this other page [3].
    
    [1] https://docs.microsoft.com/en-us/windows/win32/api/ntdef/ns-ntdef-_unicode_string
    [2] https://docs.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-rtl_user_process_parameters
    [3] https://www.nirsoft.net/kernel_struct/vista/RTL_USER_PROCESS_PARAMETERS.html
    
    gdb/ChangeLog:
    
    2020-01-16  Hannes Domani  <ssbssa@yahoo.de>
    
    	* windows-tdep.c (windows_get_tlb_type):
    	Add rtl_user_process_parameters type.
    
        
file modified
+5 -0
file modified
+60 -1