博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2010调试PostgreSQL9.4.0(网络资源+个人经验)(转)
阅读量:5216 次
发布时间:2019-06-14

本文共 2261 字,大约阅读时间需要 7 分钟。

VS2010调试PostgreSQL9.4.0(网络资源+个人经验)

一、环境:
 1. 操作系统:win7 64bit  
 2. 集成环境:Visual Studio Team System 2010 SP1
 3. PG源代码:PostgreSQL 9.4.0
 4. 所需工具:Flex、Bison、ActivePerl 5.16  
二、安装步骤:(..代表源码解压后的路径)  
 1. 用VS的CMD工具,在..\postgresql-9.2.2\src\tools\msvc路径下执行 build DEBUG。 
 2. 注释掉..\src\backend\main\main.c的“check_root(progname);”这一行。  
 3. 创建数据库目录(以在..\postgresql-9.2.2里新建db目录为例),用cmd在
    ..\postgresql-9.2.2\src\tools\msvc路径下执行install ..\postgresql-9.4.0\db。 
 4. cmd里在..\postgresql-9.2.2\db\bin路径下执行initdb dbtest 。
 5. 打开..\postgresql-9.2.2\pgsql.sln,对postgres工程增加命令参数“-D db\bin\dbtest”, 并且修改           pg_config_paths.h如下:
#define PGBINDIR "/bin"
#define PGSHAREDIR "E:/iWork/DB/PGdebug/postgresql-9.4.0/db/share"
#define SYSCONFDIR "/etc"
#define INCLUDEDIR "/include"
#define PKGINCLUDEDIR "/include"
#define INCLUDEDIRSERVER "/include/server"
#define LIBDIR "E:/iWork/DB/PGdebug/postgresql-9.4.0/db/lib"
#define PKGLIBDIR "E:/iWork/DB/PGdebug/postgresql-9.4.0/db/lib"
#define LOCALEDIR "/share/locale"
#define DOCDIR "/doc"
#define HTMLDIR "/doc"
#define MANDIR "/man"
 6. F5调试。在..\postgresql-9.2.2\db\bin路径下执行psql –d postgres连接数据库,执行SQL命令
select pg_backend_pid(); 将返回的进程号对应的进程附加到调试程序中(必需在建立连接之后),设置所需的断点。在exec_simple_query()函数中设置断点,执行SQL语句来调试。
CREATE TABLE distributors (
    did     integer CHECK (did > 100),
    name    varchar(40)
);
INSERT INTO distributors VALUES(111,'HYL');
三、编译问题:
 1、..\postgresql-9.2.2\src\tools\msvc>build DEBUG
Unable to determine Visual Studio version: The nmake version could not be determined. at src/tools/msvc/Mkvcbuild.pm line 63.
解决:
修改src\tools\msvc\Mkvcbuild.pm 文件第54行:
my $vsVersion = DetermineVisualStudioVersion();
修改后变为:
my $vsVersion;
 
修改src\tools\msvc\ VSObjectFactory.pm文件第26行,即增加如下命令(本机使用VS2010):
return new VS2010Solution(@_);
修改后变为:
my $visualStudioVersion = shift;
return new VS2010Solution(@_);
2、我按网上教程修改config_default.pl后出现无效的perl函数连接问,所以最好不要修改。
3、创建库时,报错:loading system objects' descriptions ... FATAL:  invalid byte sequence for encoding "UTF8": 0xb9 
解决:之前的路径中存在中文,改成全英文的路径后问题消失,或者initdb --locale=C dbtest。
4、按F5调试,直接退出。
解决:可能安装了pgAdmin客户端,那么右击对应服务器关闭服务即可。
5、执行psql –d postgres无法到连接数据库
解决:(1)可能安装了pgAdmin客户端,那么右击对应服务器关闭服务即可。
         (2)没有启动服务进程。先F5调试,然后执行psql –d postgres连接数据库。

转载于:https://www.cnblogs.com/yasepix/p/10132500.html

你可能感兴趣的文章
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
类型“XXX”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
C# ArrayList
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>
个人作业4-alpha阶段个人总结
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
Azure Iaas基础之---创建虚拟机
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
20190422 T-SQL 触发器
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
poj1422_有向图最小路径覆盖数
查看>>