欢迎访问皮皮网官网
皮皮网

【csp选手源码】【codemirror源码】【源码改造】libdl 源码

时间:2024-11-23 11:53:00 分类:娱乐 来源:cms源码 java

1.我在fedora安装linuxQQ的时候出现这些问题
2.如何确定 dbx 地址 terminated by signal SEGV no mapping
3.5700 symbian os pips和symbian os pipes是什么东西!

libdl 源码

我在fedora安装linuxQQ的时候出现这些问题

       可以看到,安装过程中,系统提示说,lib……is needed by linuxqq-v1.0.2-beta1.i.

       这是一个依赖问题。

       以lib开头的csp选手源码文件都是一些库函数。

       你下载的qq rpm包是没有问题的,关键是你的系统有问题。

       可能你安装系统时不是完全安装,所以库函数装的不是很全,这就导致在日后安装软件时产生包依赖问题。

       说实话,我对包依赖问题最头疼了,尤其是没有自动解决这个问题的工具的时候。

       RedHat产品这方面做的不是很好。

       建议试一下Debian,它的codemirror源码APT管理很方便。

       不过,如果你不觉得麻烦的话,并且时间允许的条件下,可以把那些依赖的库函数一个一个下载下来,给安装上去,再安装linuxqq-v1.0.2-beta1.i这个包。

       还有,通过源代码编译安装也不需要照顾库函数的源码改造依赖问题了。

       我对RedHat不是很熟悉,毕竟没有使用Fedora多长时间,似乎其中yum这个工具可以自动解决包依赖问题,具体命令就不晓得了。

       如果不能从我这里得到解决办法的话,就再查查资料,研究研究!

        --QGZ

如何确定 dbx 地址 terminated by signal SEGV no mapping

       ä½¿ç”¨ dbx 调试程序

       å¯èƒ½å‡ºäºŽä¸‹åˆ—原因之一调试程序:

       ä¸ºäº†ç¡®å®šç¨‹åºåœ¨ä½•å¤„以及为何导致崩溃。确定崩溃原因的方法包括:

       åœ¨ dbx 中运行程序。dbx 会报告崩溃的发生位置。

       æ£€æŸ¥æ ¸å¿ƒè½¬å‚¨æ–‡ä»¶å¹¶æŸ¥çœ‹æ ˆè·Ÿè¸ªï¼ˆè¯·å‚见检查核心转储文件 and 查看调用栈)。

       ä¸ºäº†ç¡®å®šç¨‹åºä¸ºä½•ç»™å‡ºé”™è¯¯ç»“果。其方法包括:

       è®¾ç½®ç”¨äºŽåœæ­¢æ‰§è¡Œçš„断点,以便可以检查程序的状态以及查看变量值(请参见设置断点和检查变量)。

       æŒ‰ä¸€æ¬¡æ‰§è¡Œä¸€ä¸ªæºä»£ç è¡Œçš„方式执行代码来监视程序状态的变化情况(请参见单步执行程序)。

       ä¸ºäº†æŸ¥æ‰¾å†…存泄漏或内存管理问题。执行运行时检查可以检测运行时错误(如,内存访问错误和内存泄漏错误),以及监视内存使用(请参见查找内存访问问题和内存泄漏)。

       æ£€æŸ¥æ ¸å¿ƒè½¬å‚¨æ–‡ä»¶

       è¦ç¡®å®šç¨‹åºå‘生崩溃的位置,可能需要检查核心转储文件,即程序崩溃时的程序内存映像。可使用 where 命令(请参见where 命令)确定程序在转储核心时的执行位置。

       æ³¨ - dbx 无法像对待本机代码那样通过核心转储文件来指明 Java 应用程序的状态。

       è¦è°ƒè¯•æ ¸å¿ƒè½¬å‚¨æ–‡ä»¶ï¼Œè¯·é”®å…¥ï¼š

       $ dbx program_name core

       æˆ–

       $ dbx - core

       åœ¨ä¸‹é¢çš„示例中,程序因段故障和转储核心而崩溃。用户启动 dbx 并装入核心转储文件。然后使用 where 命令显示栈跟踪,其中显示在 foo.c 文件的第 9 行发生崩溃。

       % dbx a.out core

       Reading a.out

       core file header read successfully

       Reading ld.so.1

       Reading libc.so.1

       Reading libdl.so.1

       Reading libc_psr.so.1

       program terminated by signal SEGV (no mapping at the fault address)

       Current function is rsu源码main

       9 printf("string ’%s’ is %d characters long\n", msg, strlen(msg));

       (dbx) where

       [1] strlen(0x0, 0x0, 0xffd, 0x7efefeff, 0x, 0xff), at

       0xff2b6dec

       =>[2] main(argc = 1, argv = 0xffbefc), line 9 in "foo.c"

       (dbx)

       æœ‰å…³è°ƒè¯•æ ¸å¿ƒè½¬å‚¨æ–‡ä»¶çš„更多信息,请参见调试核心转储文件。有关使用调用栈的更多信息,请参见查看调用栈。

       æ³¨ - 如果程序与共享库动态链接,最好在创建核心转储文件的操作环境中调试该文件。有关如何调试在不同的操作环境中创建的核心转储文件的信息,请参见调试不匹配的核心转储文件。

       è®¾ç½®æ–­ç‚¹

       æ–­ç‚¹æ˜¯ç¨‹åºä¸­è¦æš‚时停止程序的执行并让 dbx 进行控制的位置。在程序内怀疑存在错误之处设置断点。如果程序崩溃,请确定崩溃的发生位置,然后在这部分代码前设置断点。

       ç¨‹åºåœ¨æ–­ç‚¹å¤„停止时,便可以检查程序的状态和变量值。使用 dbx 可以设置多种类型的断点(请参见使用 Ctrl+C 停止进程)。

       æœ€ç®€å•çš„断点类型就是停止断点。可以设置用于在函数或过程中停止的停止断点。例如,要在调用 main 函数时停止:

       (dbx) stop in main

       (2) stop in main

       æœ‰å…³ stop in 命令的更多信息,请参见在函数中设置 stop 断点和stop 命令。

       ä¹Ÿå¯ä»¥è®¾ç½®ç”¨äºŽåœ¨æºä»£ç çš„特定行处停止的停止断点。例如,要在源文件 t.c 中的第 行处停止:

       (dbx) stop at t.c:

       (3) stop at “t.c”:

       æœ‰å…³ stop at 命令的更多信息,请参见在源代码行设置 stop 断点和stop 命令。

       å¯ä»¥ä½¿ç”¨ file 命令设置当前文件并使用 list 命令列出要在其中停止的函数来确定要停止在那里的行。然后使用 stop at 命令在源代码行设置断点:

       (dbx) file t.c

       (dbx) list main

        main(int argc, char *argv[])

        {

        char *msg = "hello world\n";

        printit(msg);

        }

       (dbx) stop at

       (4) stop at “t.c”:

       è¦ä½¿ç¨‹åºåœ¨æ–­ç‚¹å¤„停止后继续执行,请使用 cont 命令(请参见继续执行程序和cont 命令)。

       è¦èŽ·å–所有当前断点的列表,请使用 status 命令:

       (dbx) status

       (2) stop in main

       (3) stop at "t.c":

       çŽ°åœ¨å¦‚果运行程序,程序将在第一个断点处停止:

       (dbx) run

       stopped in main at line in file "t.c"

        char *msg = "hello world\n";

       å•æ­¥æ‰§è¡Œç¨‹åº

       ç¨‹åºåœ¨æ–­ç‚¹å¤„停止后,可能希望按一次执行一个源代码行的方式执行程序,在此时比较程序的实际状态与预期状态。可以使用 step 和 next 命令来执行此操作。这两个命令都是执行程序的一个源代码行,当执行完相应行时即停止。但在处理包含函数调用的源代码行时有所差别:step 命令步入函数,而 next 命令步过函数。

       step up 命令会一直执行,直至当前函数将控制权返回给调用它的函数为止。

       step to 命令会尝试步入当前源代码行中的指定函数;如果未指定任何函数,则尝试步入由当前源代码行的汇编代码确定调用的最后一个函数。

       æŸäº›å‡½æ•°ï¼ˆç‰¹åˆ«æ˜¯ printf 之类的库函数)可能未使用 -g 选项编译,因此 dbx 无法步入这些函数。在这种情况下,step 和 next 执行功能相似。

       ä»¥ä¸‹ç¤ºä¾‹è¯´æ˜Žå¦‚何使用 step 和 next 命令以及在设置断点中设置的断点。

       (dbx) stop at

       (3) stop at "t.c":

       (dbx) run

       Running: a.out

       stopped in main at line in file "t.c"

        printit(msg);

       (dbx) next

       Hello world

       stopped in main at line in file "t.c"

        }

       (dbx) run

       Running: a.out

       stopped in main at line in file "t.c"

        printit(msg);

       (dbx) step

       stopped in printit at line 6 in file "t.c"

       6 printf("%s\n", msg);

       (dbx) step up

       Hello world

       printit returns

       stopped in main at line in file "t.c"

        printit(msg);

       (dbx)

       æœ‰å…³å•æ­¥æ‰§è¡Œç¨‹åºçš„更多信息,请参见单步执行程序。有关 step 和 next 命令的更多信息,请参见step 命令和next 命令。

       æŸ¥çœ‹è°ƒç”¨æ ˆ

       è°ƒç”¨æ ˆè¡¨ç¤ºæ‰€æœ‰å½“前处于活动状态的例程,即那些已被调用但尚未返回至各自调用方的例程。在该栈中,函数及其参数按其调用顺序存放。栈跟踪显示程序流中执行停止位置及执行到达此点的过程。它提供了有关程序状态的最简明的描述。

       è¦æ˜¾ç¤ºæ ˆè·Ÿè¸ªï¼Œè¯·ä½¿ç”¨ where 命令:

       (dbx) stop in printf

       (dbx) run

       (dbx) where

       [1] printf(0x, 0xa, 0x0, 0x0, 0x0, 0x0), at 0xef

       =>[2] printit(msg = 0xa "hello world\n"), line 6 in "t.c"

       [3] main(argc = 1, argv = 0xefffec), line in "t.c"

       (dbx)

       å¯¹äºŽä½¿ç”¨ -g 选项编译的函数,参数名及其类型是已知的,因此会显示精确的值。对于无调试信息的函数,显示的参数值是十六进制数。这些数字未必都有意义。例如,在上述栈跟踪中,帧 1 所示为 SPARC 输入寄存器 $i0 至 $i5 的内容,但仅寄存器 $i0 至 $i1 的内容有意义,因为只有两个参数传递到单步执行程序所示的示例中的 printf。

       å¯ä»¥åœ¨æœªä½¿ç”¨ -g 选项编译的函数中停止。在此类函数中停止时,dbx 在栈内向下搜索其函数是使用 -g 选项编译的第一帧(本例中为 printit()),并为其设置当前作用域(请参见程序作用域)。这用箭头符号 (=>) 表示。

       æœ‰å…³è°ƒç”¨æ ˆçš„更多信息,请参见效率方面的考虑。

       æ£€æŸ¥å˜é‡

       è™½ç„¶æ ˆè·Ÿè¸ªå¯èƒ½åŒ…含足够的信息,可以完全表明程序的状态,但仍可能需要查看更多变量的值。print 命令可以求表达式的值,并根据表达式的类型输出值。以下示例中例举了几个简单的 C 表达式:

       (dbx) print msg

       msg = 0xa "Hello world"

       (dbx) print msg[0]

       msg[0] = ’h’

       (dbx) print *msg

       *msg = ’h’

       (dbx) print msg

       msg = 0xefffe8b4

       å¯ä»¥ä½¿ç”¨æ•°æ®æ›´æ”¹æ–­ç‚¹è·Ÿè¸ªå˜é‡å’Œè¡¨è¾¾å¼çš„值何时发生变化(请参见设置数据更改断点)。例如,要在变量计数值更改时停止执行,请键入:

       (dbx) stop change count

       æŸ¥æ‰¾å†…存访问问题和内存泄漏

       è¿è¡Œæ—¶æ£€æŸ¥ç”±ä¸¤éƒ¨åˆ†ç»„成: 内存访问检查及内存使用和泄露检查。访问检查将检查被调试应用程序是否不当使用了内存。内存使用和泄露检查包括跟踪所有仍存在的堆空间,然后在需要时或程序终止时,扫描可用数据空间以及识别无引用的空间。

       å¯ä»¥ä½¿ç”¨ check 命令启用内存访问检查及内存使用和泄露检查。要仅启用内存访问检查,请键入:

       (dbx) check -access

       è¦å¯ç”¨å†…存使用和内存泄漏检查,请键入:

       (dbx) check -memuse

       å¯ç”¨æ‰€éœ€çš„运行时检查类型后,运行程序。程序正常运行,但速度很慢,因为每次进行内存访问前都要检查其有效性。如果 dbx 检测到无效访问,便会显示错误的类型和位置。此时,可以使用 dbx 命令(如 where 命令)获取当前栈跟踪,也可以使用 print 命令检查变量。

       æ³¨ - 不能对使用 Java 代码和 C JNI 代码或 C++ JNI 代码混编的应用程序使用运行时检查。

symbian os pips和symbian os pipes是什么东西!

       PIPS组件|Symbian OS PIPS v1. Sv3 Sv5

       Symbian OS PIPS v1. Sv3 Sv5

       经常有兄弟反映有程序要装这个组件才能运行,特将此组件放上来,方便大家下载。

       symbian os PIPS 官方组件,你可以选择安装升级!

       PIPS是POSIX在 Symbian OS上的缩写。通过提供用于Symbian操作系统的标准POSIX C应用程序编程接口(API

       ),PIPS可帮助C程序开发员,wowonder源码将来自商业应用或开放源代码的现有中间件及应用程序轻松植入Symbian的操作

       系统。这一移植已通过向C及C++程序开发员提供POSIX C API的新型架构而实现。新型API被分装在各种行业的

       标准资源库中,包括libc、libm、libpthread以及libdl,与Symbian操作系统紧密结合以优化系统性能及内存

       使用。此外,改进的工具链将有助于进一步减轻移植工作难度。

       Symbian智能手机的功能日益增强,现在,将桌面及服务器代码移植到移动设备,开放令人兴奋的可能性并吸

       引有不同技能的开发者到Symbian的生态系统中的时机已经成熟。P.I.P.S的推出,进一步表明了Symbian致力

       于行业开放标准发展的承诺。

       POSIX资源库是Symbian操作系统拓展的自然发展。POSIX可将渐增的常用桌面中间件及应用程序,如web服务器

       、文件共享软件及基于其他移动操作系统平台的应用程序,轻巧移植到Symbian操作系统中。目前,Symbian智

       能电话产品销量已突破1亿部,P.I.P.S将使Symbian操作系统如虎添翼,令更多开发人员转向Symbian操作系统

       P.I.P.S是Symbian为改善Symbian操作系统开发体验工作的组成部分。NativeSymbianC++继续为智能手机的功

       能提供丰富多样的API集,同时,Symbian亦在开发常用的架构、虚拟机及运行时环境,如POSIX、Crossfire、

       Java、Python、Flash及 OPL,以帮助开发人员向Symbian OS这种市场领先且丰富多样的移动操作系统转移。

       此外,市场对智能手机需求快速增长,使向移动终端和Symbian操作系统转移更具吸引力。

copyright © 2016 powered by 皮皮网   sitemap