-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Автоматическая генерация standalone примеров для передачи разработчикам #87
Comments
ping @CourteousSleet |
Если запускаете модуль fuzzer.fuzz() с опцией svres=True, то можно посмотреть в SVACE-анализаторе место, в котором завершает аварию и соответственно значения всех переменных в этом фрейме. |
Если честно, то я не работаю со savce'ом и мне эта информация ничем не поможет. @CourteousSleet, тебе это о чем-то говорит? Мы это как-то можем использовать? И даже если мы получим значения переменных через свейс (а у тех кто занимается фаззингом свейса считай что нет) это все равно будет требовать дальнейшей ручной работы по копированию значений. Потому что разработчикам, которым этот кейс будет передан, ничего не известно ни про свейс ни про футаг, им нужен пример демонстрирующий проблему. При этом, с учетом того что у тебя есть уже распаршенная информация об аргументах и том как сэмпл по этим аргументам раскладывается, не вижу ничего невозможного в том, чтобы автоматически создать константы с нужными значениями... |
@nataraj-hates-MS-for-stealing-github так как я также со Svace не работаю, то согласен с первоначальной идей без него |
По сути дела, все значения переменных в точке аварийного совершения записываются в xml-файле (с расширением.svres), и с помощью Свейса можно следовать трассу по коду. |
Начали прогонять FUTAG на большом объеме целей, и обнаружили такое явление: Найденный креш существует в виде сэмпла и достаточно трудночитаемого кода сгенеренного FUTAG'ом... Передавать проблему разработчикам в таком виде крайне не желательно (разработчики и так не рады тому что их отвлекают, а когда им дают непонятную фигню, так не рады будут совсем).
Для того чтобы передать срабатывание разработчикам, приходится дебагом заходить в исследуемую функцию, смотреть какие именно значения аргументов были переданы при падении, оформлять эти значения в виде констант, и вызывать все вручную.
Для функции:
Должно поучиться что-то вроде
Достаточно нудная и однообразная работа. С моей точки зрения это можно в определенной мере автоматизировать...
На основаниии заданного сэмпла сгенерировать обертку в которой сэмпл будет разложен по константам в явном виде.
Это уже будет не стыдно передавать разработчикам.
The text was updated successfully, but these errors were encountered: