作者s4300026 (s4300026)
看板C_and_CPP
标题[讨论] 寻求除错钓鱼竿
时间Thu Nov 1 08:43:52 2018
是这样的
我最近使用 C#的GUI 使用 CLR的中介dll,仲介内容为 原生C++ lib
当然
C#、CLR、C++ 的档案都是我写的
里面内含错误是不可免
但VC难以针对 lib 和 dll 做变数追踪
且在GUI环境下连 printf 都无法使用
造成个人找错的困难
目前个人的解决办法如下
建立一fopen, fclose 的class,将所有函式有兴趣的地方进行 fprintf
至少要让我知道你死在哪个function里
虽然有助於找错,但印出的东西总是很多很杂,我担心用久了log.txt会开很久
想询问有没有更好的解决办法?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.235.221
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1541033034.A.E6F.html
1F:→ petercoin: 我dll都用OutputDebugString写讯息然後用DebugView看 11/01 09:09
2F:→ petercoin: DebugView是一套软体 11/01 09:09
感谢楼上大大~~ 问一下,你是指你写的dll内include该软体的lib,
然後再用DebugView看吗? 老实说用别人的dll总是忐忑忐忑的..
会不会突然就不支援了阿 QQ
3F:推 colako: google "native managed debug visual studio" 11/01 13:01
4F:→ colako: 另外,没有 printf, 可以用 MessageBox 系列 11/01 13:03
5F:→ colako: 前两行的文章会讲混合除错模式, 可下中断点, 用不到上一行 11/01 13:13
感谢楼上大大~~~ GOOGLE 查询後网址如下:
https://docs.microsoft.com/zh-tw/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2017
>>
https://preview.tinyurl.com/y9kjpwuk
开启该功能後可追踪到方案(solution)中的所有专案(project)
至於我指的printf是 原生C++ 的印出,而不是C#的印出
不过这并没有关系了,因为红圈圈到的了,这样就够了。
针对同solution的问题就解决了
话说我原本没想到原来只要打个勾就可以用了
看来我小瞧VS的强大了!!
我原本还在想大家会不会走 throw exception 的路线呢!!
还是说因为 throw exception 不会用在自认为不会出错的地方
所以除错上不会用 throw exception?
像是 vector v;
v.at() 却用 v[] 之类的...
※ 编辑: s4300026 (60.250.235.221), 11/01/2018 19:26:28
6F:→ petercoin: OutputDebugString是微软的API 所以不用担心XD 11/02 09:52
7F:→ s4300026: 太好啦,突然整个使用意愿大增~~~ <3 11/02 12:14