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


    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  http://www.activestate.com/activeperl/downloads)
    二、安装步骤:(..代表源码解压后的路径)  
     1. 用VS的CMD工具,在..postgresql-9.2.2src oolsmsvc路径下执行 build DEBUG。 
     2. 注释掉..srcackendmainmain.c的“check_root(progname);”这一行。  
     3. 创建数据库目录(以在..postgresql-9.2.2里新建db目录为例),用cmd在
        ..postgresql-9.2.2src oolsmsvc路径下执行install ..postgresql-9.4.0db。 
     4. cmd里在..postgresql-9.2.2dbin路径下执行initdb dbtest 。
     5. 打开..postgresql-9.2.2pgsql.sln,对postgres工程增加命令参数“-D dbindbtest”, 并且修改           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.2dbin路径下执行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.2src oolsmsvc>build DEBUG
    Unable to determine Visual Studio version: The nmake version could not be determined. at src/tools/msvc/Mkvcbuild.pm line 63.
    解决:
    修改src oolsmsvcMkvcbuild.pm 文件第54行:
    my $vsVersion = DetermineVisualStudioVersion();
    修改后变为:
    my $vsVersion;
     
    修改src oolsmsvc 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连接数据库。
  • 相关阅读:
    cmd 进入不同的驱动盘及上下级目录
    子网/ip/子网掩码
    虚拟化技术与"云"
    OSI 7层模型
    第一天的CI笔记
    在本地Apache服务器配置虚拟主机站点
    phpmailer 发送邮件
    mysql 中执行的 sql 注意字段之间的反向引号和单引号
    手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
    JS 创建元素的三种方法
  • 原文地址:https://www.cnblogs.com/yasepix/p/10132500.html
Copyright © 2020-2023  润新知