Гайд Интегрированная отладка asi/sf/dll плагинов в игре с помощью Visual Studio

FYP

Известный
Автор темы
Администратор
1,764
5,923
прив

Многие ли из вас знают, что с помощью Visual Studio можно отлаживать плагины прямо в игре и что делается это очень просто? Нет, блять, нихуя вы не знаете!
Но я вас научу. Берём студию и проект своего плагина, идём в конфигурацию проекта на страницу "Debugging" (Отладка) и ставим такие параметры:
gS3Bi5R.png

D:\GTA\SAMP - это путь к игре, если кто не понял.

На странице General (Основные) в параметр Output Directory (Выходная директория) нужно указать путь к игре (если он уже не указан в Linker -> General -> Output File).
Далее, на странице Linker (Компоновщик) -> Debugging (Отладка) меняем параметр Generate Debug Info на "Debug".
Желательно изменить ещё следующие настройки (всё это уже настроено в автоматически создаваемой конфигурации "Debug", но может отсутствовать в готовых проектах или шаблонах):
C/C++ -> Optimization -> Optimization = Disabled
В C/C++ -> Preprocessor -> Preprocessor Definitions добавить _DEBUG;
C/C++ -> Code Generation -> Runtime Library = Multi-threaded debug

Всё, теперь при запуске приложения из студии, путём нажатия этой кнопки
upload_2018-2-12_22-22-50.png

вы больше не будете видеть похожую ошибку
upload_2018-2-12_22-21-51.png

вместо этого будет запущена игра с вашим плагином и в режиме отладки.
Ставьте тысячи брейкпоинтов и краштесь на здоровье!

Чтобы проворачивать то же самое в сампе, закиньте __loadsamp.asi в корень игры и в параметр "Command Arguments" с первого скрина впишите эту строку: -loadsamp -c -n FYPs_fan -h 127.0.0.1 -p 7777
 

Вложения

  • __loadsamp.asi
    69.5 KB · Просмотры: 365
Последнее редактирование:

iAmerican

Известный
Друг
614
260
Для DLL не подойдет.(Для справки остальным)
p.s. За исключением соба
 

NarutoUA

NarutoUA
BH Team
692
1,550
Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe. В ида про есть отладчик с псевдокодом (правда энивей надо с дебаг инфой билдить для профита, но можно и самп так дебагать). Еще есть полезная хреновина в студии - Edit and Continue, позволяет редачить код без рекомпила.

upload_2018-2-13_10-9-56.png

Пиздек, не делайте так, юзайте дебаг конфигурацию
 
Последнее редактирование:
  • Нравится
Реакции: gaZmanoV

iAmerican

Известный
Друг
614
260
Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe. В ида про есть отладчик с псевдокодом (правда энивей надо с дебаг инфой билдить для профита, но можно и самп так дебагать). Еще есть полезная хреновина в студии - Edit and Continue, позволяет редачить код без рекомпила.

Посмотреть вложение 11809
Пиздек, не делайте так, юзайте дебаг конфигурацию
Edit Continue
Вариант тоже неплохой на самом деле , только нужна база данных для модуля
 

FYP

Известный
Автор темы
Администратор
1,764
5,923
Для DLL не подойдет.(Для справки остальным)
p.s. За исключением соба
ну переименовать .dll в .asi и все дела, а ещё некоторые лоадеры грузят и длл из своей папки
Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe
это менее удобно и если игру крашит через доли секунды после запуска, не успеешь прицепить отладчик
Пиздек, не делайте так, юзайте дебаг конфигурацию
это да, в проекте просто не было дебаг конфигурации
 

FYP

Известный
Автор темы
Администратор
1,764
5,923
Хз, дебагаю ресамп таким образом, ниче не крашило
ты не понял. если твой плагин (ресамп) крашит игру сразу же при запуске, ты не успеешь прицепить отладчик, для этого придётся добавлять какой-нибудь MessageBox в сам плагин, который бы паузил процесс до нажатия "ОК". это же касается и использования брейкпоинтов на раннем этапе загрузки.
да, твой вариант рабочий и его можно юзать, но зачем, когда есть вариант получше?
 

NarutoUA

NarutoUA
BH Team
692
1,550
ты не понял. если твой плагин (ресамп) крашит игру сразу же при запуске, ты не успеешь прицепить отладчик, для этого придётся добавлять какой-нибудь MessageBox в сам плагин, который бы паузил процесс до нажатия "ОК". это же касается и использования брейкпоинтов на раннем этапе загрузки.
да, твой вариант рабочий и его можно юзать, но зачем, когда есть вариант получше?
Если твой плагин не запускает игру в окне то тогда ничем
 

FYP

Известный
Автор темы
Администратор
1,764
5,923
то тогда ничем
что ничем?
зачем моему плагину запускать игру в окне, когда для этого есть другие плагины или собейт и они с этим хорошо справляются? окно игры создаётся не моментально после старта
 

NarutoUA

NarutoUA
BH Team
692
1,550
что ничем?
зачем моему плагину запускать игру в окне, когда для этого есть другие плагины или собейт и они с этим хорошо справляются? окно игры создаётся не моментально после старта
Ну в этом и преимущество аттача что игру можно перед этим запускать как хочешь.
 

FYP

Известный
Автор темы
Администратор
1,764
5,923
Ну в этом и преимущество аттача что игру можно перед этим запускать как хочешь.
много ли смысла запускать игру не в окне во время отладки? и к тому же её потом всё равно придётся перевести в оконный режим, так лучше ж тогда, чтобы это делалось автоматически
 
  • Нравится
Реакции: CAPTA!N и eiuhuth

reseller

Потрачен
33
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1595064025809.png

1595065591862.png
1595065611106.png

1595065619248.png
1595065634282.png
1595065642232.png
 
Последнее редактирование:

Cake_

Потрачен
Проверенный
263
313