c++ - Is it possible to determine the cause of a HPUX PA-RISC seg fault without using pmap or wdb? -
We are facing a randomly occurring partition fault on a C / C ++ HPUX PARISC application releases demo HPUX Compiled with the PARISC compiler and the linker ACC, which is connected to an HP PASSI release of a shared object SL (i.e. like) and acc. If we do not have access to pmap or HPUX wdb, then we are using HP's proprietary debugger ADB how to use ADB: This insulting instruction appears at this point in any way related to the assembly. Our first question is that Our second question is whether the program counter 1 E3C is accurate and can be used to get more information about the attacker C / C ++ source line Our third question is that Next we modify our Mayfile to get the combined concepts - C ++ source code However, when we all generate 50 *. S files, we can not detect the in summary, we determine Trying to find out if it is possible to find out abusive C / C ++ source lines that are the reason for this random seg fault. Using Centos Linux and valgrind to $ mdMUReadWriteExample (0) 0xc01fef60 _sigreturn [/usr/lib/libc.2] (1) 0xc2f27b90 _ CT _7CBigNumFv_2 + 0x88 [./libmdMatchup.sl] (2) 0xc2f3c83c RSADecrypt_ FPCcN21Pc + 0x24 [./libmdMatchup.sl] (3) 0xc2f314ec decryptic lacens _9mdLicenseFPCcPc + 0x44 [./libmdMatchup.sl] ( 4) 0xc2f31280 decryptDecodeTest_ 9mdLicenseFPCcT1 + 0x40 [./libmdMatchup.sl] (5) 0xc2f30c3c Test License _9mdLicenseFPCc + 0xb4 [./libmdMatchup.sl] (6) 0xc2d783bc SetLicenseString_ 12cBatchDedupeFPCc + 0x5c [. / LibmdMatchup SL] (7) 0xc2d6c908 SettleCence string _13mdMUReadWriteFPCc + 0x90 [./libmdMatchup .sl] (8) 0x0000376c Main + 0x68 [./mdMUReadWriteExample] (9) 0xc01409f8 _start + 0xa0 [/ usr / lib / libc. 2] (10) 0x00002008 $ start $ + 0x178 [./mdMUReadWriteExample] Segmentation fault (core dump)
$ adb PA-32 adb ($ h help $ q) Quiit) adb & gt; Cp mdMourWriteExample a.out! ADB & gt ;: RAAT: Running (Process 10947) Section Violation has been closed at E3C: STW R3,1416 (r1)
1416 is in decimal format or hexadecimal format.
1416 is in the decimal format, then the register shown below is
1 ($ r1) in this
0x40015b90 . Using hexadecimal arithmetic to
1416 (base 10 (ie. Hex
0x588 )) +
equals 0x40015b90
0x40016118 . After this, we use nm to find the shared object library address / C ++ melign symbol associated with
0x40016118 .
$ grep -n "4001611" /home/marc/acc3_pa_32bit/cameron_nm.txt 27808: 40016118? Static ___ OSA_RSCP_ 27823: 40016110? Static___soa_cDate_cpp_
constant ___ SOA_RSA_cpp _ mysteriously. Have we left an important step here?
ADB> $ R pcoqh 0 1E3F pcoqt 0 1E43 RP 0 0xC0209793 arg0 0 1 ARG1 0 7F7F04FC ARG2 0 7F7F050 4 arg3 0 7F7F0540 SP 0 7F7F05D0 ret0 0 0 ret1 0 1 Dp 40,016,390 r1 0 40015B90 R3 0 7F7F0000 r4 0 4,001,591 8 R5 0 - 3C R6 0 20 R7 0 3E r8 0 7F7F091 0 r9 0 40,015,918 R10 0 40,031,918 r11 0 1E800 r12 0 4,001,611 8 R13 0 400266A4 R14 0 3F R15 0 3F R16 0 3 D R17 0 3 D R18 0 3 A R19 0 7B03B764 R20 0 0xA98D4 00 R21 0 7F7F0550 R22 0 0 R31 0 1E2B SAR 0 23 sr0 0 0xA98D400 SR1 0 3,848,400 SR2 0 0 SR3 0 0 SR4 0 0xA98D400
- tool = memcheck We could not find Ovrrans a buffer thank you, I know how to get segmentation fault stack trace with hpux PA.
Comments
Post a Comment