1.我在fedora安装linuxQQ的时候出现这些问题
2.å¦ä½ç¡®å® dbx å°å terminated by signal SEGV no mapping
3.5700 symbian os pips和symbian os pipes是什么东西!
我在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操作系统转移更具吸引力。