Можно использовать код в http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml со следующими модификациями: код, как дали только работает, если у Вас есть один большой гудящий' исходный файл. Я уладил это для другого вопроса на ТАК ( здесь ).
Для запуска, не делают изменение stdafx.h, делают Ваши модификации в Ваших собственных файлах.
Делают отдельный заголовочный файл mymemory.h и помещают Ваших прототипов функции в него, например (обратите внимание, что это не имеет никакого тело ):
inline void * __cdecl operator new(unsigned int size,
const char *file, int line);
Также в том заголовке, помещенном другие прототипы для AddTrack (), DumpUnfreed (), и т.д., и #defines, определение типа и оператор экстерна:
extern AllocList *allocList;
Затем в новом mymemory.cpp (который также mymemory.h #include), помещает фактическое определение allocList наряду со всеми реальными функциями (не только прототипы) и добавляют что файл к Вашему проекту.
Затем #include "mymemory.h"
в каждом исходном файле, в котором необходимо отследить память (вероятно, все они). Поскольку нет никаких определений в заголовочном файле, Вы не получите дубликаты во время ссылки и потому что объявления там, Вы не получите неопределенные ссылки также.
Имеют в виду, что это не отследит утечки памяти в коде, который Вы не компилируете (например, сторонние библиотеки), но он должен сообщить о Ваших собственных проблемах.
Попробуйте следующее:
:vmap p "_xP
vmap
означает создание сопоставления, которое применяется только в визуальном режиме. p
- ключ для создания сопоставления. "_
- регистр черной дыры. Он используется в любой ситуации, когда вы хотите удалить текст, не затрагивая никакие регистры. xP
означает удаление выделенного текста, а затем вставку перед полученной позицией курсора. Вы можете настроить сопоставление, чтобы облегчить вашу боль:
:vmap <F5> "zxP
Это удалит визуально выделенный текст, но поместит его в другой регистр, так что буфер обмена не будет затронут. Измените
на то, что вам удобнее.
Я не знаю, как это сделать в Windows. В KDE в буфере обмена есть история, из которой вы можете выбирать, так что вы можете выполнить вставку, выбрать предыдущий выбор из буфера обмена и вставить в новое место.
Тем не менее, похоже, что это может иметь больше смысла чтобы вы могли иметь его только в одном месте, а затем напишите сценарий, который принимает этот ввод и создает нужный вам вывод. Не могли бы вы подробнее рассказать о том, чего вы пытаетесь достичь?
Тем не менее, похоже, что для вас может иметь больше смысла иметь его только в одном месте, а затем написать сценарий, который будет принимать этот ввод и создавать нужный вам вывод. Не могли бы вы подробнее рассказать о том, чего вы пытаетесь достичь?
Тем не менее, похоже, что для вас может иметь больше смысла иметь его только в одном месте, а затем написать сценарий, который будет принимать этот ввод и создавать нужный вам вывод. Не могли бы вы подробнее рассказать о том, чего вы пытаетесь достичь?
Не знаю, понял ли я вас неправильно, но я пробовал то, что вы делаете, и у меня нет проблем с этим с помощью выпадающего регистра +.
Мой рабочий процесс:
К сожалению, при второй вставке вам придется явно вставить из регистра +. Поэтому я бы рекомендовал сопоставление для p / P вместо использования clipboard = un named
nmap p "+p
Попробуйте использовать
:registers
, чтобы увидеть содержимое различных регистров.
Проверьте значение параметров "guioptions". Убедитесь, что флаг «а» не установлен. Также проверьте, что опция «буфер обмена» и убедитесь, что не установлены флаги «безымянный» или «автоматический выбор».
:set go-=a
:set clipboard-=unnamed