小编Nu *_*unu的帖子

适用于 linux 的 C++ 调试器类似于 MS Visual Studio 的调试器?

一点背景:有一段时间我一直在为我的 C++ 项目使用一个名为 CodeBlocks 的免费 IDE。最近我获得了 Microsoft Visual Studio 2013 的许可证,我不得不说这是一种完全不同的体验。自动完成功能在您键入时更好、更灵敏、更准确地进行错误检查,是 MFC 应用程序的可视化资源管理器。虽然这些东西你可以在几乎任何带有正确插件的文本编辑器中获得,但我发现 MS Visual Studio 特别吸引人的是它非常漂亮且视觉上吸引人的调试器(比 CodeBlocks 中的更易于使用并提供更多信息) .

我一直在考虑切换到基于 linux 的系统,因为至少对我来说,它似乎为通用编程提供了更好的工具。但是,我不能让自己失去 MS VS 调试器并回到 CodeBlocks 之类的东西。我一直在为 linux 寻找各种调试器,但我真的找不到与 MSVS2013 中的调试器相似的调试器。有人可以帮我解决这个问题吗?什么是我可以使用的好的调试器?

我正在寻找的功能:

  • 一个“自动”监视选项卡/窗口,用于跟踪最近使用过或可能使用的变量,包括在类方法内部时的“this”指针;
  • 一个“Locals”监视选项卡/窗口,它严格跟踪局部变量(无需手动输入)
  • 突出显示从一个指令步进到另一个指令时发生变化的变量
  • 能够设置多个监视窗口/选项卡并在它们之间轻松切换
  • 能够扩展被监视的对象以查看其成员的值
  • 能够轻松查看存储在监视指针指向的地址中的值

c++ linux debugging visual-studio visual-studio-2013

0
推荐指数
2
解决办法
2803
查看次数

Win32 API:Mutex即使已经发布也会挂起

我正在尝试通过互斥锁建立进程间通信.我有一个过程可以做到这一点:

HANDLE hMutex = CreateMutex(NULL, TRUE, "amutex_name");
if (!hMutex) {
    puts("Error creating mutex. Aborting.");
    return;
}
for (int i = 0; i < 500; ++i) {
    if (WaitForSingleObject(hMutex, INFINITE) == WAIT_FAILED) {
        puts("Error waiting for mutex. Aborting.");
        return;
    }
    if (!ReleaseMutex(hMutex)) {
        puts("Error releasing mutex. Aborting.");
        return;
    }
    puts("MUTEX RELEASED");
    Sleep(2000);
}
CloseHandle(hMutex);
Run Code Online (Sandbox Code Playgroud)

第二个程序(不同的过程)执行此操作:

HANDLE hMutex = CreateMutex(NULL, FALSE, "amutex_name");
if (!hMutex) {
    puts("Error creating mutex. Aborting.");
    return;
}
while (1) {
    if (WaitForSingleObject(hMutex, INFINITE) == WAIT_FAILED)
        continue;
    if (!ReleaseMutex(hMutex)) …
Run Code Online (Sandbox Code Playgroud)

windows winapi mutex process

0
推荐指数
1
解决办法
247
查看次数