c++ - Is it possible to determine the cause of a HPUX PA-RISC seg fault without using pmap or wdb? -


"postprint" itemprop = "text">

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:

  $ 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)   

This insulting instruction appears at this point in any way related to the assembly. Our first question is that 1416 is in decimal format or hexadecimal format.

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 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_

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 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   

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 - tool = memcheck We could not find Ovrrans a buffer thank you, I know how to get segmentation fault stack trace with hpux PA.

$ 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)

Comments