vs 2019 附加到进程调试

附加到进程,可以调试已经发布到服务器的项目。vs选择调试->附加到进程

默认显示的本地计算机的进程。

如果要调试远程服务器的程序,服务器运行调试器即可。调试器可以在vs的安装目录下找到,Remote Debugger文件整个复制到服务器。也可以到官方下载

服务器在进入文件路径Remote Debugger\x64\msvsmon.exe运行msvsmon.exe程序,调试程序运行默认的端口号为4024

记得开放端口号,否则连接不上。复制红色下划线的名称,如果你的机器与服务器在同一个局域网内,可以直接使用这个名称连接调试。

建议***在服务器上再新建一个计算机账号,然后在调试器上工具->权限设置账号。

回到vs2019 附加到进程

连接目标上粘贴刚刚复制的计算机名和端口号(局域网才这样做,非局域网,服务器ip:端口号),回车。

如果下面显示进程表示连接成功了。

那.NET Core进程为例,在筛选进程的搜索框输入dotnet,将会显示发布的.NET Core项目,选中然后附加vs就进入了调试模式了。

如果发现项目引用的dll类库那里不能断点,则可以在vs工具->设置->调试->常规:去掉勾中的 启用“仅我的代码”,

还有如果附加的进程版本和现在vs项目调试的代码版本有出入的话也会断点失败,这时也可以去掉勾选 要求源文件与原始版本完全匹配。

相关推荐:

如何在Python中自定义NumPy的打印格式以方便调试?

np.set_printoptions()可直接控制NumPy数组显示格式;默认格式因小数位不一致、科学计数法混用及自动截断而影响调试效率;关键参数需协同设置,如precision控制有效位数、suppress禁用科学计数法、threshold避免省略、linewidth防换行混乱、floatmod...

如何在Python生产环境下调试异步死锁与任务阻塞问题?

生产环境禁用asyncio.run(),须手动管理事件循环并捕获未完成任务;asyncio.Lock必须加超时;create_task()后需显式跟踪等待;连接池耗尽等资源问题亦会导致无日志卡死。 asyncio.run()在生产环境直接调用会掩盖死锁信号 生产环境不能用asyncio.run()启...

如何解决Python多进程共享大字典时的内存拷贝问题?

直接用dict传给子进程会导致内存翻倍,因fork后的写时复制被Python内部操作(如引用计数、哈希查找)意外触发;共享只读字典应使用shared_memory+序列化,配合显式清理。 直接用dict传给子进程,内存几乎必然翻倍——不是因为你要改它,而是Python解释器自己就在偷偷写它。 为什么...

Python项目中多进程消费同一个RabbitMQ队列怎么保障数据一致性?

RabbitMQ本身保证单条消息只投递一次给一个消费者,数据一致性问题源于业务逻辑并发执行导致的竞态,而非消息重复投递;basic_ack仅确认消息接收,不保障业务执行唯一性,故无法解决数据一致性问题。 多进程消费同一个RabbitMQ队列时,数据一致性问题不来自RabbitMQ本身(它天然保证单条...