首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UbuntuLinux15.10平台上使用Monodevelop调试器将托管C#可执行的步骤转换为非托管C++共享对象的代码?

如何在UbuntuLinux15.10平台上使用Monodevelop调试器将托管C#可执行的步骤转换为非托管C++共享对象的代码?
EN

Unix & Linux用户
提问于 2016-02-18 02:31:40
回答 2查看 767关注 0票数 0

我们想知道在mono环境中运行的托管C#可执行文件如何能够在UbuntuLinux15.10平台上使用Monodevelop调试器进入非托管C++共享对象的代码。为5.5,mono版本为Mono编译器版本3.2.8 (Debian3.2.8+dfsg-4ubuntu4),.NET版本为4.5。我使用gdb进入非托管C++共享对象的代码。但是,我们只想在UbuntuLinux15.10平台上为托管C#代码和非托管C#代码使用Monodevelop调试器。提前谢谢你。

EN

回答 2

Unix & Linux用户

发布于 2016-02-18 06:26:22

我刚刚接到通知说,基本上这是不受支持的,有人试图使它工作,但它缺乏时间和兴趣来使它工作。

https://github.com/mono/debugger-libs/tree/lldb-debugging

我们永远欢迎PullRequests

票数 0
EN

Unix & Linux用户

发布于 2016-02-19 08:02:37

  1. 通过调试将C#/.NET解决方案加载到Monodevelop、build和运行中
  2. ps -ef请注意,mono本身不会分叉进程,除非您的代码.您的托管C# xyz.exe在单进程中加载,并作为一个没有分叉的方式执行。
  3. 标识感兴趣的单进程的进程id(PID)“/usr/bin/mono -调试-调试器代理,在此实际示例中为7575。
  4. 非托管C++共享对象应使用-g进行编译,以创建符号表。~/InteroperabilityTest/MySQLVersion/Debug$ sudo gdb 7575 GNU gdb (Ubuntu7.10-1ubuntu2) 7.10版权(C) 2015年自由软件基金会公司许可证GPLv3+:GNU版本3或更高版本http://gnu.org/licenses/gpl.html这是免费软件:您可以自由更改和重新分发它。在法律允许的范围内,没有任何保证。输入“显示复制”和“显示保修”以获取详细信息。这个GDB被配置为"x86_64-linux-gnu“。键入“显示配置”以获取配置细节。有关错误报告说明,请参见:http://www.gnu.org/software/gdb/bugs/。在线查找GDB手册和其他文档资源,请访问:http://www.gnu.org/software/gdb/documentation/。如需帮助,请键入“帮助”。键入“意外单词”以搜索与“word”相关的命令.7575:没有这样的文件或目录。(gdb)文件BuildIPCameraListLinux.exe从BuildIPCameraListLinux.exe读取符号.(没有找到调试符号)...done。(gdb)断开ClickItCameraList.cpp:176没有加载符号表。使用"file“命令。在将来的共享库负载上使断点挂起?(y或N) y断点1 (ClickItCameraList.cpp:176)挂起。(gdb)运行启动程序: /home/venkat/InteroperabilityTest/MySQLVersion/Debug/BuildIPCameraListLinux.exe警告:选定的体系结构i386与报告的目标体系结构i 386:x86-64不兼容:体系结构拒绝目标提供的描述、添加-符号文件-内存,此目标进程不支持此目标进程: /usr/bin/mono-sgen 使用lib线程进行线程调试_启用db使用主机libthread_db库“/lib/x86_64-linux-gnu/ library _db.so.1”。新螺纹0x7ff471f700 (LWP 7597)断点1,CreateSupportedCameraList () at ./ClickItCameraList.cpp:176 { (gdb)步骤180 std::map > vendorMap;步骤std::map,std::allocator >,std::less,std::allocator >>>:map( this=0x7fffffffd160) at /usr/include/c++/5/bit/stl_map.h: 166:_M_t() {} (gdb)步骤std::_Rb_tree,std::allocator > >,std::_Select1st,std::allocator > >,std::std::allocator >> >::_Rb_tree (this=0x7fffffffd160) at /usr/include/c++/5/bit/stl_tree.h: 807 807 _Rb_tree() {} (gdb)步骤std::_Rb_tree,std::allocator > >,std::_Select1st : std::allocator >> >,std:less,std:_Rb_tree:allocator>>> >::_Rb_tree_impl,false>::_Rb_tree_impl (this=0x7fffffffd160) at /usr/include/c++/5/bit/stl_tree.h: 588 588 _M_node_count(0) (gdb)继续。我在这里保存好程序收到信号SIGPWR,电源故障/重新启动。切换到线程0x7ff471f700 (LWP 7597) 0x00007ff74b60c9在futex_abstimed_wait (cancel=true、private=、abstime=0x0、expected=0、futex=0x98a680 )的sem_waitcommon.c:42 42 sem_waitcommon.c:没有这样的文件或目录。(gdb)

如果你有任何问题请告诉我。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/263991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档