Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带有gdb的OpenDBX odbx_init块(eclipse)_Sql_Eclipse_Gdb - Fatal编程技术网

Sql 带有gdb的OpenDBX odbx_init块(eclipse)

Sql 带有gdb的OpenDBX odbx_init块(eclipse),sql,eclipse,gdb,Sql,Eclipse,Gdb,我正在测试OpenDBX以连接到Ubuntu Linux上的一个项目的MSSQL服务器。 我正在使用C/C++和EclipseCDTIDE。 我从OpenDBX网页构建了一个简单的测试应用程序(下面没有显示错误测试) 问题: 当我从shell或run->run运行代码时,我看到与服务器(wireshark)建立了连接。 当我尝试使用eclipse调试器从odbx_init(…)上的应用程序块运行时,我发现wireshark(SYN/ACK)上没有任何结果。 我的gdb设置为sudo,() 我还使

我正在测试OpenDBX以连接到Ubuntu Linux上的一个项目的MSSQL服务器。 我正在使用C/C++和EclipseCDTIDE。 我从OpenDBX网页构建了一个简单的测试应用程序(下面没有显示错误测试)

问题: 当我从shell或run->run运行代码时,我看到与服务器(wireshark)建立了连接。 当我尝试使用eclipse调试器从odbx_init(…)上的应用程序块运行时,我发现wireshark(SYN/ACK)上没有任何结果。 我的gdb设置为sudo,() 我还使用相同的平台和设置,通过我们正在开发的其他应用程序的套接字访问网络

关于odbx_init为什么会被调试器阻塞,有什么想法吗

最后一点要添加的信息。使用C++ API时不会出现此问题。只有C API出现了所描述的问题


最后一点要添加的信息。 使用C++ API时不会出现此问题。 只有C API提出了所描述的问题。

我发现了一个“解决方法”。显然,在EclipseGDB调试模式下,库的动态加载失败。为了在main的开头解决这个问题,我显式地加载库,然后立即关闭它。这会将库放在内存中,因此当调用OpenDBXAPI时,库已经驻留。不确定所有底层细节,但这允许我在eclipse中调试OpenDBX。如果有人有更好的解释或解决方法,请告诉我。以下是main()开头的变通代码:

odbx_init( &handle, "mssql", "172.16.232.60", "" );
odbx_bind( handle, "testdb", "testuser", "testpwd", ODBX_BIND_SIMPLE );
odbx_finish( handle );
void *lib_handle_mssql;
lib_handle_mssql = dlopen("/usr/lib/opendbx/libmssqlbackend.so",RTLD_NOW);
if(!lib_handle_mssql)
{    
    // Bad, Bad, Bad...
    printf("%s\n",dlerror());
    exit(EXIT_FAILURE);
}
dlclose(lib_handle_mssql);
// Can now debug in eclipse IDE.