0
我有一個C程序hello.c。我創建了一個共享對象hello.so。AIX中的共享對象加載?
的hello.c和hello.so /u/grv/objects/hello.so分別
LIBPATH設置爲/ U/GRV /對象是在目錄/u/grv/program/hello.c: $ LIBPATH
當我使用dbx調試code..dbx問我從兩個列表,以便..
在LIBPATH的所有目錄,選擇只有一個「hello.so」文件。 .so這個secound「so」文件是從哪裏來的?
這裏是dbx會話的屏幕截圖:
(dbx) stop on load "hello.so"
[1] stop on load "hello.so"
(dbx) c
stop: loaded /u/grv/object/hello.so
[1] stopped in uload at 0x9fffffff0002024 ($t1)
0x9fffffff0002024 (uload+0x104) e8410028 ld r2,0x28(r1)
(dbx) stop in hello
1. hello.hello
2. glink64.hello
Select one or more of [1 - 2]:
其他信息: genkld命令不會在hello.so ..這意味着它不是loaded..is這究竟是爲什麼它是問我的原因選擇..或者還有其他原因..?
如何加載共享對象,以便它顯示在genkld列表中?
什麼你真的想實現嗎?創建一個自己運行它的共享對象? –
我只是好奇爲什麼有兩個這樣的..但我只有這樣.. – Grv
沒錯,只有一個'hello.so',但有兩個'你好'_symbol._也試試這個:'info sh' (它在gdb中工作,對dbx不知道)。 –