使用visual studio远程开发调试linux服务器的代码,在使用visual studio调试的时候,打了断点也不成功,程序直接全速执行。

我直接在linux服务器命令行编译出来之后,用下面命令可以看到,程序编译的是debug版本。

[root@localhost bin]# readelf -S cns_launcher | grep debug
  [28] .debug_aranges    PROGBITS         0000000000000000  0014e906
  [29] .debug_info       PROGBITS         0000000000000000  0017daa6
  [30] .debug_abbrev     PROGBITS         0000000000000000  0086abf0
  [31] .debug_line       PROGBITS         0000000000000000  008896cf
  [32] .debug_str        PROGBITS         0000000000000000  008f37ae
  [33] .debug_ranges     PROGBITS         0000000000000000  00a82a12

但是,如果我用visual studio F5调试的时候就是不对,然后我用visual studio构建,然后用

readelf -S cns_launcher | grep debug

发现程序编译出来的并不是debug版本,这是因为虽然服务器上的makefile是编译的debug版本,但是我window的工程里面的makefile编译的是release版本,而每次用visual构建的时候,我本地的文件会覆盖掉服务器的文件,所以导致服务器的文件被修改成了release版本。

可以看到我在构建visual studio工程时候,选择的是下面的选项

 那么,每次构建的时候,本地的文件都会被上传到服务器,导致服务器的文件每次都被替换掉了。。。

Logo

更多推荐