1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Отладочные символы

Тема в разделе "WASM.HEAP", создана пользователем M0rg0t, 14 авг 2020.

Метки:
  1. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.380
    У меня символы сохраняются в папку (сейчас же нельзя , как раньше, скачать и все, надо чтоб оно с серверов майкрософта качало); посмотрел - там уже 3.5 гига этого добра, причем допустим для кернелбейс штук 20 pdb файлов, для других длл подобная картина. Почему так , кто знает? И есть ли в них смысл, мб поудалять?
    Файлы разные, если что, т.е. чем-то они отличаются по идее, но не пойму, или мс так часто их обновляет или я что-то криво настроил.
     
  2. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    879
    Адрес:
    Россия, Нижний Новгород
    Считай, почти на каждое обновление новые kernelbase/kernel32/ntdll. Обновляются часто, поэтому на каждую версию своя pdb'шка.
    Можешь всё поудалять, при необходимости все актуальные символы подгрузятся снова.
     
    M0rg0t нравится это.
  3. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.380
    Подниму тему. Вот каждое обновление начинаю дебажить, и ... минут на 30 можно куда-то уходить. Т.к. качает символы очень медленно.
    Можно ли как-то все же выкачать их наперед ? Допустим, программа раз в неделю/месяц проверяет символы и ночью выкачивает для каждой длл.. Как-то же оно работает, качают же символы студия, Ида и т.д.
     
  4. Artem_N

    Artem_N Artem N

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    59
    Вроде можно, но я сам не пробовал (на днях переводил https://xss.is/threads/60438/ - оттудова инфа):

     
    M0rg0t нравится это.
  5. FoxB

    FoxB Member

    Публикаций:
    0
    Регистрация:
    10 июл 2003
    Сообщения:
    92
    под ту ось откуда запущено вроде

    ну или можно поразбираться
    Код (Text):
    1.  
    2. symchk [/r] [/q] [Input options] <Filename> [/s <SymbolPath>] [options]
    3.  
    4. <Filename>  Name of the file or directory that contains the executables
    5.   to perform symbol checking on.
    6.  
    7. /s <SymbolPath> Semi-colon separated list of symbol paths.  Symbol server
    8.   paths are allowed.  To retrieve symbols to a downstream
    9.   store, use "SRV*<downstream store>*<symbol server>" for
    10.   the symbol path.  See the debugger documentation for more
    11.   details.
    12.  
    13. /r  Perform recursive operations on the <Filename> specified.  The
    14.   wildcard * can be used in filenames.
    15.  
    16. /q  Turn off all output options by default. Only output turned on
    17.   with a output flag (see below) will be printed
    18.  
    19. --------------------------------------------------------------------------------
    20.  
    21. * Input options (choose only one):
    22. /if <Filename>  Input is a file name.  Wildcards can be used to specify
    23.   the file name. Default if nothing is specified.
    24. /id <DumpFile>  Input is a dump file.
    25. /ih <HotFix>  Input is a self-extracting Hotfix cab.
    26. /ie <ExeName>  Input is an application name that is currently running.
    27.   If the provided ExeName is '*', all currently running
    28.   processes will be checked.
    29. /im <ManifestList>  Input is a manifest previously created using the /om <file>
    30.  
    31.   option.
    32. /ip <ProcessId>  Input is a process id. If the provided ProcessID is '*',
    33.   all currently running processes will be checked.
    34. /it <TextFileList>  Input is a list of files, one per line, inside of a text
    35.   file.
    36.  
    37. --------------------------------------------------------------------------------
    38.  
    39. * Action options (choose only one):
    40. /av  For each binary, Verify symbols exist and match.  Default.
    41.  
    42. --------------------------------------------------------------------------------
    43.  
    44. * Symbol checking options:
    45. /cc  when symbol checking a hotfix cab, don't look for symbols inside the cab.
    46.   By default, symchk will look for symbols in the cab as well as in the
    47.   provided symbol path.
    48. /cn  When symbol checking a running process, don't suspend that process.  User
    49.   must ensure the process doesn't exit before symbol checking finishes.
    50. /cs  Skip verifying that there is CodeView data. Symchk will verify that there
    51.   IS codeview data by default.
    52.  
    53. - Symbol checking options for DBG information (choose one):
    54. /ds  If image was built so that there is information that belongs in a DBG
    55.   file, then this option verifies that the DBG information is stripped
    56.   from the image and that the image points to a DBG file. Default.
    57. /de  If image was built so that there is information that belongs in a DBG
    58.   file, then this option verifies that the DBG information is STILL in the
    59.   image and that the image does not point to a DBG file.
    60. /dn  Verify that the image does not point to a DBG file and that DBG
    61.   information is not in the image.
    62.  
    63. - Symbol checking options for PDB files:
    64. /pa  Allow both public and private PDBs.  Default.
    65. /pf  Verify that PDB files contain full source information.
    66. /ps  Verify that PDB files are stripped and do not contain full source
    67.   (private) information.
    68. /pt  Verify that PDB files are stripped, but do have type information.  Some
    69.   PDB files may be stripped but have type information added back in.
    70.  
    71. --------------------------------------------------------------------------------
    72.  
    73. * Symbol checking exclude options:
    74. /ea <Filename>  Don't perform symbol checking for the binaries listed in the
    75.   file specified.  <Filename> is a text file that contains the
    76.   name of each binary, one per line.
    77. /ee <Filename>  Perform symbol checking and report files that pass or are
    78.   ignored, but don't report errors for binaries listed in the
    79.   file specified.  <Filename> is a text file that contains the
    80.   name of each binary, one per line.
    81.  
    82. --------------------------------------------------------------------------------
    83.  
    84. * Symbol path options:
    85. /s[eprsu]  <SymbolPath>  Use <SymbolPath> as the search path.
    86.  
    87.   NOTE: If the '/s' option is not used, SymChk defaults to using the value
    88.   in %_NT_SYMBOL_PATH%. If %_NT_SYMBOL_PATH% is not defined, then SymChk
    89.   will default to:
    90.   SRV*%SYSTEMROOT%\SYMBOLS*https://msdl.microsoft.com/download/symbols
    91.  
    92. * Modifiers (choose all that apply):
    93.   e - check each path individually instead of checking all paths at once.
    94.   p - force checking for private symbols.  Public symbols will be treated as
    95.   not matching. (Implies the 'e' and 'u' modifiers.)
    96.   r - Expand all non-symbol server elements in the specified path in order to d
    97. o
    98.   a deep search of the path. NOTE: This option may produce matches that wil
    99. l
    100.   not occur inside the debugger since it modifies the symbol path specified
    101. .
    102.   s - force checking for public (split) symbols. Private symbols will be
    103.   treated as not matching. (Implies the 'e' and 'u' modifiers.)
    104.   u - force updating of downstream stores. If the symbol path includes a
    105.   downstream store, always re-check the server for the symbol. Only
    106.   stores that are checked against will be updated.
    107.   NOTE: The 's' and 'p' options are mutually exclusive. Only the last one
    108.   present will be used.
    109.  
    110. --------------------------------------------------------------------------------
    111.  
    112. * Output options (choose all that apply):
    113. /ob  Give the full path for binaries in the output messages for symbol
    114.   checking.
    115. /oc[x[a]] <Directory>  Create a flat symbols tree in <Directory> which
    116.   contains all matching symbols. If 'x' is also used, copy the matching
    117.   binaries into <Directory> as well. If 'a' is also present, the binary
    118.   will always be copied to the flat symbol tree even if symbol checking
    119.   failed.
    120. /od  List all details.  Same as /oe /op /oi
    121. /oe  List individual errors.  Errors will be sent to the output by default.
    122.  
    123.   This option is only needed when using /q
    124. /oi  List each file that is ignored.
    125. /op  List each file that passes.
    126. /os  Give the full path for symbols in the output messages for symbol
    127.   checking.
    128. /ot  Send totals to the output.  Totals are sent to the output by default.
    129.   This option is only needed when using /q
    130. /ov  Print version information for checked binaries as well.
    131.  
    132. - Extended output options:
    133. /ol <File>  In addition to the messages sent to standard out, write a
    134.   file that contains a comma separated list of all the
    135.   binaries and their symbols that pass symbol checking.
    136. /om <Manifest> Print out a manifest file for later use with the '/im' option.
    137. /v  Turn on verbose output mode.
    138. --------------------------------------------------------------------------------
    139.  
    140. * Module filtering options when checking processes or dump files (choose one):
    141.  /fm <Module>  Filter results to only include the named module.
    142.  
    143. --------------------------------------------------------------------------------
    144.  
    145. * Misc options
    146.  /port  Old usage to new usage quick porting table
    147. --------------------------------------------------------------------------------
    148.  
     
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.657
    M0rg0t,

    > каждое обновление начинаю дебажить

    Переходи на норм инструменты, автоматику. Ручная отладка уже мало пригодна.
     
  7. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.380
    Artem_N, спасибо, попробую;
    мне так и надо.
    в данном случае автоматика не вариант. Я пишу код в студии, потом в ней же и дебажу. Это удобнее чем любой отладчик или визор, т.к. видны локальные переменные и т.д., но долго качает символы (какой-то combase вообще минут 15).
     
  8. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    30
    Попробуй выставить в настройках Debug->Options->Debugging->Symbols->Load only specified modules. Возможно тебе будет их достаточно, чтобы отлаживаться. При желании можно дописать нужные или исключить ненужные. Прогружается все моментально при таких настройках.

    upload_2022-1-9_22-49-24.png
     
    M0rg0t нравится это.