PDA

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


FYP
12.02.2018, 23:38
прив

Многие ли из вас знают, что с помощью Visual Studio можно отлаживать плагины прямо в игре и что делается это очень просто? Нет, блять, нихуя вы не знаете!

Но я вас научу. Берём студию и проект своего плагина, идём в конфигурацию проекта на страницу "Debugging" (Отладка) и ставим такие параметры:

https://i.imgur.com/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

Всё, теперь при запуске приложения из студии, путём нажатия этой кнопки

https://forum.antichat.xyz/attachments/27183724/

вы больше не будете видеть похожую ошибку

https://forum.antichat.xyz/attachments/27183724/

вместо этого будет запущена игра с вашим плагином и в режиме отладки.

Ставьте тысячи брейкпоинтов и краштесь на здоровье!

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

iAmerican
13.02.2018, 05:17
Для DLL не подойдет.(Для справки остальным)

p.s. За исключением соба

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

https://forum.antichat.xyz/attachments/27183784/

Пиздек, не делайте так, юзайте дебаг конфигурацию

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

Пиздек, не делайте так, юзайте дебаг конфигурацию


Edit Continue

Вариант тоже неплохой на самом деле , только нужна база данных для модуля

FYP
13.02.2018, 12:32
Для DLL не подойдет.(Для справки остальным)
p.s. За исключением соба


ну переименовать .dll в .asi и все дела, а ещё некоторые лоадеры грузят и длл из своей папки



Запускаете игру -> VisualStudio - Debug - Attach to Process - gta_sa.exe


это менее удобно и если игру крашит через доли секунды после запуска, не успеешь прицепить отладчик



Пиздек, не делайте так, юзайте дебаг конфигурацию


это да, в проекте просто не было дебаг конфигурации

NarutoUA
13.02.2018, 12:39
это менее удобно и если игру крашит через доли секунды после запуска, не успеешь прицепить отладчик


Хз, дебагаю ресамп таким образом, ниче не крашило

FYP
13.02.2018, 12:51
Хз, дебагаю ресамп таким образом, ниче не крашило


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

да, твой вариант рабочий и его можно юзать, но зачем, когда есть вариант получше?

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


Если твой плагин не запускает игру в окне то тогда ничем

FYP
13.02.2018, 13:00
то тогда ничем


что ничем?

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

NarutoUA
13.02.2018, 13:13
что ничем?
зачем моему плагину запускать игру в окне, когда для этого есть другие плагины или собейт и они с этим хорошо справляются? окно игры создаётся не моментально после старта


Ну в этом и преимущество аттача что игру можно перед этим запускать как хочешь.

FYP
13.02.2018, 13:16
Ну в этом и преимущество аттача что игру можно перед этим запускать как хочешь.


много ли смысла запускать игру не в окне во время отладки? и к тому же её потом всё равно придётся перевести в оконный режим, так лучше ж тогда, чтобы это делалось автоматически

Dark_Knight
28.04.2020, 16:17
Давай sampfuncs.pdb в студию

reseller
18.07.2020, 13:20
https://forum.antichat.xyz/attachments/27530782/

https://forum.antichat.xyz/attachments/27530782/

https://forum.antichat.xyz/attachments/27530782/

https://forum.antichat.xyz/attachments/27530782/

https://forum.antichat.xyz/attachments/27530782/

https://forum.antichat.xyz/attachments/27530782/

Cake_
18.07.2020, 14:21
Используй Debug конфигурацию

reseller
18.07.2020, 14:26
Используй Debug конфигурацию



https://forum.antichat.xyz/attachments/27530812/