热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vs调试配置相关技术总结

1.程序运行状态下调试程序的方法在程序运行时(不是在提调试状态),如果此时要调试某一个功能,可以通过debug-atta

1.程序运行状态下调试程序的方法

在程序运行时(不是在提调试状态),如果此时要调试某一个功能,可以通过debug->attach to process(调试->附加到进程),然后在将要调试的代码段添加断点,来对正在运行的程序进行调试:



在调试时还可以用另一个vs调试正在运行的其他的vs打开运行的exe程序


2.常用快捷键总结:

VC++:

Ctrl+k+f:格式化代码

Alt+上下箭头:跳转到上一个函数或下一个函数体

Alt+g:跳转到当前文件中

F12:跳转到定义处

ctrl+”+””-”:跳转到前一个光标位置或后一个光标位置

shift+tab:回退tab

ctrl+g:跳转到指定行


3.线程相关库及对应的编译器选项

libc.lib:单线程(static)--/ML
libcd.lib:调试版单线程(static)--/MLd

libcmt.lib:多线程(static)--/MT
libcmtd.lib:调试版多线程(static)--/MTd

msvcrt.lib:多线程dll--/MD
msvcrtd.lib:调试版多线程dll--/MDd

4.两个解决方案共用一个工程中的代码(如共用一个动态链接库的工程源文件进行编译,或其中一个解决方案调用另一个解决方案中的动态链接库)

如解决方案sln1.sln和sln2.sln

一个动态链接库工程myDll.dll工程在sln1.sln中创建,如果sln2.sln这个工程也想用sln1.sln中的myDll.dll的动态链接库,但不希望将sln1.sln中的动态链接库拷贝到sln2.sln中进行调用,而是直接配置sln2.sln中使用myDll.dll工程的那个工程的属性来将sln2.sln的生成路径指定到sln1.sln的debug或release目录下,这样就可以两个解决方案共用同一个代码,但是这样做后虽然sln2.sln能配置lib的路径,但是调用lib对应的dll时是从当前sln2.sln的当前目录中找对应的dll的,而不是在lib同一个目录下找的,所以要特别指定dll所在的路径,最好使用动态调用的方式,即LoadLibrary(),GetProcAddress()的方式调用,指定dll的路径(最好使用相对路径,如两个解决方案在同一个目录下比较好移动)

5.VS相关的宏

_DEBUG:在debug模式下vs默认会产生该宏来标识debug模式,用途:

#ifdef _DEBUG
 hModule = LoadLibrary("..\\testd.dll");
#else
 hModule = LoadLibrary("..\\test.dll");
#endif

TargetDir:即程序运行时所在的目录,如通过LoadLibrary("..\\MMaild.dll");指定的路径就是相对TargetDir而言的,而非针对ProjectDir而言的!!!
ProjectDir:和release、debug目录平级的并且和工程名同名的那个目录即为ProjectDir
慎重!!!

6.不要用release来调试!用debug模式来调试程序!否则看到的内容很可能是错位的!






推荐阅读
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 并发编程入门:初探多任务处理技术
    并发编程入门:探索多任务处理技术并发编程是指在单个处理器上高效地管理多个任务的执行过程。其核心在于通过合理分配和协调任务,提高系统的整体性能。主要应用场景包括:1) 将复杂任务分解为多个子任务,并分配给不同的线程,实现并行处理;2) 通过同步机制确保线程间协调一致,避免资源竞争和数据不一致问题。此外,理解并发编程还涉及锁机制、线程池和异步编程等关键技术。 ... [详细]
  • 在C#中开发多线程应用程序变得高效且简便,与之前使用VB时的复杂性和局限性形成鲜明对比。C#不仅提供了丰富的多线程编程模型,还简化了线程管理、同步和通信等关键任务,使得开发者能够更加轻松地构建高性能的应用程序。此外,C#的异步编程特性进一步增强了多线程应用的开发效率和可维护性。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
author-avatar
robable004_96978
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有