ofs | hex dump | ascii |
---|
0000 | 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 03 84 00 00 03 09 08 02 00 00 00 d4 02 6f | .PNG........IHDR...............o |
0020 | 6a 00 00 00 09 70 48 59 73 00 00 0e c4 00 00 0e c4 01 95 2b 0e 1b 00 00 20 00 49 44 41 54 78 9c | j....pHYs..........+......IDATx. |
0040 | ec dd 7d 50 54 57 9a 3f f0 d3 a4 07 11 da 0b e9 c6 46 5e a6 87 01 96 f4 62 06 f1 0d ba 18 43 58 | ..}PTW.?.........F^.....b.....CX |
0060 | ec 24 04 c9 84 e0 4b b9 ca 50 86 98 8e 4b 31 04 29 d7 20 c3 52 2e a1 90 32 26 cb 5a c6 69 09 31 | .$....K..P...K1.)...R...2&.Z.i.1 |
0080 | ee 2c 21 e8 b0 a6 43 29 69 8c 92 88 2d 52 84 28 10 44 60 b1 c3 24 f8 12 25 da 3a 28 08 3d b9 bf | .,!...C)i...-R.(.D`..$..%.:(.=.. |
00a0 | 3f ce cf bb 97 a6 6f d3 a0 d0 bc 7c 3f 7f dd 7b 38 f7 9c 73 cf 7d 68 1e ee 5b 8b 58 96 25 00 00 | ?.....o....|?..{8..s.}h..[.X.%.. |
00c0 | 00 00 00 8e e0 e4 e8 01 00 00 00 00 c0 ec 85 64 14 00 00 00 00 1c 06 c9 28 00 00 00 00 38 0c 92 | ...............d........(....8.. |
00e0 | 51 00 00 00 00 70 18 24 a3 00 00 00 00 e0 30 48 46 01 00 00 00 c0 61 a6 7d 32 7a e5 ca 95 a1 a1 | Q....p.$......0HF.....a.}2z..... |
0100 | a1 c9 dc 10 a6 ac b1 1e d3 f7 df 7f 5f 26 93 b9 b9 b9 8d 5c 15 89 44 1d 1d 1d 13 31 b0 c7 db 32 | ............_&.....\..D....1...2 |
0120 | 8c 6a ca 46 05 4c 9c a9 76 d0 3b 3a 3a 44 22 d1 98 c6 30 26 dc 20 f1 77 8d cf ea b1 1b d3 01 fd | .j.F.L..v.;::D"...0&...w........ |
0140 | e0 83 0f 96 2f 5f ee ee ee 3e 7f fe fc df fe f6 b7 9f 7c f2 89 3d 5b ad 5d bb 56 64 cd bf ff fb | ..../_...>........|..=[.].Vd.... |
0160 | bf db d9 2f 3f 18 c6 1a 8d 0f 1e 3c f8 cf ff fc cf c5 8b 17 cf 9b 37 cf d7 d7 77 ed da b5 17 2f | .../?......<..........7...w..../ |
0180 | 5e b4 b3 5f 47 62 a7 39 42 48 7b 7b fb 64 6e 08 53 d6 58 8f a9 44 22 79 ef bd f7 ae 5e bd 3a 72 | ^.._Gb.9BH{{.dn.S.X..D"y....^.:r |
01a0 | 35 2b 2b eb c6 8d 1b 13 31 30 04 de 24 9b b2 51 01 13 67 aa 1d f4 f6 f6 76 42 c8 e0 e0 a0 fd 63 | 5++.....10..$..Q..g.....vB.....c |
01c0 | 18 13 6e 7f f1 f1 c2 67 75 36 ec 9f a2 82 82 02 3f 3f bf 83 07 0f 36 35 35 d5 d7 d7 ef de bd 9b | ..n....gu6......??....655....... |
01e0 | 61 98 fd fb f7 8f ba 61 57 57 57 63 63 63 63 63 63 45 45 05 21 a4 f1 21 fb 0f 2e 3f 18 c6 14 8d | a......aWWWccccccEE.!..!...?.... |
0200 | 03 03 03 31 31 31 52 a9 b4 b0 b0 f0 c4 89 13 95 95 95 09 09 09 1e 1e 1e 9d 9d 9d 76 76 ed 28 48 | ...111R....................vv.(H |
0220 | 46 61 e6 18 eb 31 b5 a8 3f 71 21 81 64 d4 81 a6 6c 54 c0 c4 99 6a 07 9d 26 a3 f7 ef df b7 7f 0c | Fa...1..?q!.d...lT...j..&....... |
0240 | 63 82 64 d4 aa 47 4c 46 15 0a 85 5e af e7 97 1c 3a 74 48 a9 54 da 3f 00 7a dc ed af cf 19 f7 9f | c.d..GLF...^....:tH.T.?.z....... |
0260 | 8c dd bb 77 fb f8 f8 58 64 bd 09 09 09 9b 37 6f 1e c7 30 26 d3 f4 4e 46 2d 4e f1 9e 3c 79 32 3c | ...w...Xd.....7o..0&..NF-N..<y2< |
0280 | 3c 5c 22 91 84 87 87 73 31 d4 d4 d4 14 1b 1b 2b 95 4a 19 86 51 ab d5 ad ad ad 23 37 64 59 b6 a0 | <\"....s1......+.J..Q.....#7dY.. |
02a0 | a0 20 20 20 40 2a 95 26 26 26 d2 03 d9 d4 d4 14 17 17 b7 60 c1 02 57 57 d7 65 cb 96 7d f5 d5 57 | ....@*.&&&.........`..WW.e..}..W |
02c0 | 36 1a a4 ac 0e 00 26 87 c5 31 25 84 d4 d6 d6 46 45 45 6d da b4 c9 ea a1 1c 59 df 62 95 fb fd 1f | 6.....&..1%....FEEm......Y.b.... |
02e0 | 19 1b b6 59 d4 17 6a 99 3f c2 09 9b 95 d9 6e 8a 44 c5 d1 a3 47 c3 c2 c2 18 86 89 89 89 69 6d 6d | ...Y..j.?.....n.D...G........imm |
0300 | e5 b7 63 f5 43 83 10 52 57 57 b7 66 cd 1a a9 54 1a 10 10 50 5e 5e 3e 31 d3 33 33 4d 91 83 7e f0 | ..c.C..RWW.f...T...P^^>1.33M..~. |
0320 | e0 c1 90 90 10 7a d0 8f 1e 3d 4a 08 e9 eb eb a3 3f 1a 79 d0 2d 3a 15 fa eb c3 1f 0c 3f d1 a1 e5 | .....z...=J.....?.y.-:......?... |
0340 | 23 1b 11 fa 53 35 4b 10 e1 64 34 32 32 32 23 23 83 96 ac 5f bf 9e 10 72 fd fa 75 96 65 7b 7a 7a | #...S5K..d4222##..._...r..u.e{zz |
0360 | 08 21 74 c2 19 86 29 2a 2a e2 6f 7b f7 ee dd 93 27 4f b2 2c 6b cf e6 ac b5 64 d4 e2 63 7f d4 80 | .!t...)**.o{....'O.,k....d..c... |
0380 | 1c 6b 34 06 05 05 1d 3c 78 d0 62 97 bf ff fe 7b 6e 48 ec 54 fd cc 99 de c9 28 cb 3b 36 4d 4d 4d | .k4....<x.b....{nH.T.....(.;6MMM |
03a0 | 1e 1e 1e c5 c5 c5 e7 cf 9f cf c8 c8 10 8b c5 b5 b5 b5 66 b3 59 2e 97 67 66 66 1a 0c 86 da da da | ..................f.Y..gff...... |
03c0 | e4 e4 e4 25 4b 96 58 6c c8 b2 ec ee dd bb 15 0a 45 55 55 55 4d 4d 4d 54 54 94 4a a5 ba 7f ff be | ...%K.Xl........EUUUMMMTT.J..... |
03e0 | 54 2a 0d 0b 0b d3 eb f5 f5 f5 f5 eb d7 af 57 28 14 2c cb da 68 d0 ea 00 1c 31 25 b3 17 19 fe df | T*............W(.,..h....1%..... |
0400 | 64 68 68 68 41 41 c1 d9 b3 67 ad 1e 4a 76 c4 47 15 b1 f6 cf e8 c8 d8 b0 3d 06 ab f5 ad b6 cc 8d | dhhhAA...g..Jv.G........=....... |
0420 | b0 b1 b1 f1 71 ce 02 0c e7 f0 a8 38 71 e2 84 ab ab eb fe fd fb 5b 5a 5a b4 5a ad 9f 9f 9f ed 4f | ....q......8q........[ZZ.Z.....O |
0440 | 2d da 51 78 78 b8 4e a7 6b 6d 6d 4d 49 49 71 76 76 e6 f2 18 b0 87 c3 0f 7a 45 45 85 b3 b3 f3 9e | -.Qxx.N.kmmMIIqvv.......zEE..... |
0460 | 3d 7b 1a 1b 1b f7 ee dd cb 30 0c 21 c4 64 32 b1 36 0f 3a ed 48 e8 af 0f 3b 5a 32 ca 5f b0 f1 a7 | ={.......0.!.d2.6.:.H...;Z2._... |
0480 | 6a f6 b0 91 8c e6 e5 e5 85 85 85 d1 12 3f 3f 3f b1 58 7c e4 c8 11 96 65 4b 4b 4b 19 86 a1 37 54 | j............???.X|....eKKK...7T |
04a0 | 64 67 67 13 42 62 62 62 b4 5a ad c5 65 6e 7b 36 67 05 92 51 ee 63 df ce 03 6d 7f 34 f6 f6 f6 12 | dgg.Bbbb.Z..en{6g..Q.c...m.4.... |
04c0 | 42 8c 46 a3 8d 39 99 b2 9f 39 33 27 19 4d 4a 4a ca cf cf e7 ca d5 6a 75 42 42 02 fd 37 e5 fc f9 | B.F..9...93'.MJJ......juBB..7... |
04e0 | f3 b4 d0 64 32 55 56 56 5a 6c c8 b2 ac 5c 2e e7 ca 5b 5b 5b d5 6a f5 d5 ab 57 8b 8a 8a 5a 5a 5a | ...d2UVVZl...\...[[[.j...W...ZZZ |
0500 | 68 61 5d 5d 1d 0d 29 1b 0d 5a 1d c0 c4 ec 34 58 67 f1 4b 5b 58 58 c8 b2 ac c9 64 b2 7a 28 59 fb | ha]]..)..Z....4Xg.K[XX....d.z(Y. |
0520 | fe 02 8d 8c 0d db bf a2 56 eb 0b 25 a3 74 84 30 a1 1c 1e 15 31 31 31 fc 4f 86 fc fc 7c db 9f 5a | ........V..%.t.0....111.O...|..Z |
0540 | b4 23 ad 56 4b 0b e9 1f 18 5c 7b 1d 13 87 1f 74 95 4a 95 9b 9b cb ad ee dc b9 93 10 d2 db db cb | .#.VK....\{....t.J.............. |
0560 | da 3c e8 b4 23 3b c7 69 3b 19 b5 f1 a7 6a f6 10 3a c5 d8 de de 5e 5f 5f ef e4 e4 74 eb d6 ad ee | .<..#;.i;....j..:....^__...t.... |
0580 | ee 6e 17 17 97 75 eb d6 a5 a5 a5 b1 2c ab d1 68 f8 7f b8 ab aa aa 36 6d da a4 50 28 08 21 7e 7e | .n...u......,..h......6m..P(.!~~ |
05a0 | 7e 3b 77 ee a4 89 a6 9d 9b 5b 4d 46 b9 8f 7d 3b 0f b4 fd d1 d8 dd dd 4d 78 27 e0 2d 66 80 96 4c | ~;w......[MF..};.......Mx'.-f..L |
05c0 | d9 cf 9c 99 93 8c 06 05 05 d5 d5 d5 71 e5 ef bd f7 5e 68 68 28 cb b2 1a 8d c6 c5 c5 e5 f9 e7 9f | ............q....^hh(........... |
05e0 | 2f 28 28 f8 fe fb ef 47 6e 78 e3 c6 0d 42 c8 ad 5b b7 46 36 5e 53 53 b3 67 cf 9e 0d 1b 36 2c 58 | /((....Gnx...B..[.F6^SS.g....6,X |
0600 | b0 80 3b 96 42 0d 0a 0d 00 26 8d c5 2f 2d ff 70 58 3d 94 a3 fe 05 b2 11 1b 56 09 d5 17 4a 46 f9 | ..;.B....&../-.pX=.......V...JF. |
0620 | 23 84 09 e2 f0 a8 f0 f4 f4 e4 77 6a 30 18 46 fd d4 e2 a7 11 23 87 04 a3 72 f8 41 67 18 66 e4 41 | #.........wj0.F.....#...r.Ag.f.A |
0640 | a7 57 72 6d 1c 74 fe 18 46 1d a7 ed 64 94 15 fe 53 35 7b 10 42 f4 7a 7d d7 70 74 8a cc 66 b3 54 | .Wrm.t..F...d...S5{.B.z}.pt..f.T |
0660 | 2a d5 e9 74 a5 a5 a5 51 51 51 25 25 25 f4 28 04 07 07 17 17 17 8f 6c aa ab ab 2b 27 27 47 2a 95 | *..t...QQQ%%%.(.......l...+''G*. |
0680 | d2 9b 2f ed dc dc 6a 32 6a f1 b1 3f ea 81 b6 3f 1a cd 66 b3 b3 b3 33 ff a3 83 ee 32 bd 35 88 96 | ../...j2j..?...?..f...3....2.5.. |
06a0 | 4c d9 cf 9c 69 ff 6a 27 4e 4f 4f 4f 64 64 24 f7 0e 85 cc cc 4c fa 5f c2 81 03 07 ba bb bb e3 e2 | L...i.j'NOOOdd$.....L._......... |
06c0 | e2 1a 1a 1a 94 4a e5 8e 1d 3b 2c 36 34 9b cd 84 10 b1 58 6c 51 be 71 e3 46 8d 46 63 32 99 52 52 | .....J...;,64.....XlQ.q.F.Fc2.RR |
06e0 | 52 74 3a 1d 57 2e d4 a0 d0 00 c0 51 a4 52 29 5d 10 3a 94 a3 12 8a 8d c7 55 9f 1b 21 4c 1a 47 45 | Rt:.W......Q.R)].:......U..!L.GE |
0700 | 05 87 bf a1 8d 0f 0d 57 57 57 fb 87 04 b6 4d fe 41 b7 a8 e9 e4 e4 c4 35 62 cf 5f 0a 7b c6 39 30 | .......WWW....M.A......5b._.{.90 |
0720 | 30 60 7b 0c a3 fe ed 9b 0d fc fd fd 03 87 a3 e5 4f 3c f1 84 5a ad fe ea ab af 0c 06 c3 8a 15 2b | 0`{.............O<..Z..........+ |
0740 | a2 a3 a3 5b 5b 5b 2f 5d ba d4 d9 d9 19 1b 1b 4b 08 b9 79 f3 e6 2b af bc d2 df df 4f eb 07 06 06 | ...[[[/].......K..y..+.....O.... |
0760 | be fd f6 db a5 a5 a5 47 8e 1c b1 67 73 1b f8 1f fb e3 0b 48 a1 68 7c e2 89 27 94 4a a5 5e af e7 | .......G...gs......H.h|..'.J.^.. |
0780 | 4a e8 2e 0f 0e 0e 72 25 53 f7 33 67 32 33 df 89 40 1e e6 ef 01 01 01 15 15 15 5c b9 d1 68 6c 69 | J.....r%S.3g23..@.........\..hli |
07a0 | 69 31 99 4c db b7 6f 37 9b cd b4 50 a7 d3 49 24 12 8b 0d 59 96 65 18 86 bb 8d b7 ad ad 6d c1 82 | i1.L..o7...P..I$...Y.e.......m.. |
07c0 | 05 8d 8d 8d e4 e1 3f b2 2c ef fc b9 8d 06 ad 0e 60 62 76 1a ac 23 d6 fe 9b a4 57 1c 46 1e 4a d6 | ......?.,.......`bv..#....W.F.J. |
07e0 | 8e d3 21 ac b5 d8 e8 ea ea b2 31 06 ab f5 ad b6 4c 70 ba 6b 52 38 3c 2a 22 23 23 0b 0a 0a b8 d5 | ..!.......1.....Lp.kR8<*"##..... |
0800 | c2 c2 42 db 9f 5a b6 c7 00 f6 70 f8 41 5f b1 62 05 ff 32 7d 5e 5e 1e 21 a4 bb bb 9b b5 e3 a0 db | ..B..Z....p.A_.b..2}^^.!........ |
0820 | 1e 27 77 5a ab a4 a4 64 e4 f8 b9 05 1b 7f aa 66 0f ab bf 38 5c e1 c1 83 07 c3 c2 c2 9e 7e fa e9 | .'wZ...d.......f...8\........~.. |
0840 | aa aa 2a 96 65 fd fc fc 36 6c d8 10 12 12 42 ab 0d 0c 0c b8 ba ba 5a 3c c7 53 5e 5e ce 55 b0 bd | ..*.e...6l....B.......Z<.S^^.U.. |
0860 | 39 65 f5 cc 28 37 24 3b 03 72 4c d1 58 56 56 c6 30 0c 8d 34 ce 9a 35 6b b8 96 a7 ec 67 ce b4 4f | 9e..(7$;.rL.XVV.0..4..5k....g..O |
0880 | 46 9d 9c 9c 4a 4b 4b af 5e bd ba 73 e7 ce e0 e0 60 9d 4e d7 d2 d2 52 52 52 22 91 48 f2 f2 f2 cc | F...JKK.^..s....`.N...RRR".H.... |
08a0 | 66 b3 a7 a7 67 46 46 46 63 63 a3 c1 60 88 8f 8f 5f b1 62 85 c5 86 2c cb e6 e4 e4 04 04 04 e8 f5 | f...gFFFcc..`..._.b...,......... |
08c0 | fa a6 a6 26 b5 5a 1d 1a 1a 7a ff fe 7d 17 17 97 9d 3b 77 76 75 75 1d 3b 76 ec e9 a7 9f 26 84 18 | ...&.Z...z..}....;wvuu.;v....&.. |
08e0 | 8d 46 1b 0d 5a 1d 80 c3 e6 65 56 e2 1f 53 ee 77 49 e8 50 b2 f6 fd 05 1a 19 1b b6 c7 60 b5 be d5 | .F..Z....eV..S.wI.P.........`... |
0900 | 81 21 c3 98 1c 0e 8f 8a 63 c7 8e b9 ba ba 6a b5 5a fa c9 e0 ef ef 4f 08 a1 cf 43 08 7d 68 38 fc | .!......c.....j.Z.....O...C.}h8. |
0920 | 0f c3 74 e7 f0 83 7e f4 e8 51 fa 00 d3 f9 f3 e7 f7 ef df ef e3 e3 c3 f5 35 ea 41 b7 31 4e 7f 7f | ..t...~..Q..............5.A.1N.. |
0940 | ff b8 b8 b8 a6 a6 26 bd 5e 1f 16 16 36 32 77 e1 76 dc c6 9f aa d9 c3 76 32 da d3 d3 e3 e4 e4 24 | ......&.^...62w.v......v2......$ |
0960 | 16 8b e9 83 65 49 49 49 4e 4e 4e 99 99 99 5c cd 3d 7b f6 b8 b8 b8 e4 e4 e4 54 55 55 d5 d6 d6 ee | ....eIIINNN...\.={.......TUU.... |
0980 | db b7 cf d3 d3 93 bb 0a 3f ea e6 ec 68 c9 a8 9d 01 39 d6 68 4c 4c 4c 64 18 26 2f 2f 4f af d7 57 | ........?...h....9.hLLLd.&//O..W |
09a0 | 54 54 c4 c5 c5 fd ee 77 bf 73 75 75 a5 3f 9d b2 9f 39 d3 3e 19 4d 4f 4f 97 48 24 52 a9 74 70 70 | TT.....w.suu.?...9.>.MOO.H$R.tpp |
09c0 | 30 2f 2f 2f 20 20 c0 c5 c5 25 38 38 98 bb 47 d8 60 30 a8 54 2a 5a 27 31 31 91 fb 8f 81 db 90 65 | 0///.....%88..G.`0.T*Z'11......e |
09e0 | 59 b3 d9 9c 93 93 a3 50 28 18 86 89 8f 8f a7 d1 50 5e 5e ee ef ef cf 30 4c 6c 6c 6c 5b 5b 5b 74 | Y......P(.......P^^....0Llll[[[t |
0a00 | 74 b4 bf bf bf 8d 06 85 06 00 93 86 7f 4c f9 bf 4b 42 87 d2 9e bf 40 56 63 c3 06 ab f5 ad 0e 0c | t............L..KB....@Vc....... |
0a20 | 19 c6 e4 98 0a 51 51 5a 5a aa 54 2a 3d 3c 3c 12 12 12 aa aa aa c8 c3 07 ab 85 3e 34 1c fe 87 61 | .....QQZZ.T*=<<...........>4...a |
0a40 | ba 9b 0a 07 fd d0 a1 43 f4 d5 4e 51 51 51 f4 a6 3d fa 1f 88 3d 07 5d 68 9c 35 35 35 4a a5 52 22 | .......C..NQQQ..=...=.]h.555J.R" |
0a60 | 91 44 47 47 5b bd 67 94 bf e3 42 7f aa 66 0f db c9 28 cb b2 4f 3f fd 34 97 c6 d1 33 cd f4 cd 4d | .DGG[.g...B..f...(..O?.4...3...M |
0a80 | 1c 9d 4e a7 56 ab e5 72 39 c3 30 cb 96 2d 3b 74 e8 10 ff a7 a3 6e 6e 3b 19 65 ed 0b c8 71 44 63 | ..N.V..r9.0..-;t.....nn;.e...qDc |
0aa0 | 51 51 51 64 64 24 1d 73 41 41 81 d9 6c e6 de a5 30 65 3f 73 44 ac f0 13 67 00 00 f0 88 8e 1f 3f | QQQdd$.sAA..l...0e?sD...g......? |
0ac0 | 2e 97 cb 97 2f 5f 4e 57 3f f9 e4 93 cd 9b 37 df bb 77 cf b1 a3 02 00 98 3a 66 ce 03 4c 00 00 53 | ..../_NW?.....7..w......:f..L..S |
0ae0 | 50 43 43 c3 ba 75 eb 2e 5c b8 d0 df df 7f f6 ec d9 dc dc dc cd 9b 37 3b 7a 50 00 00 53 88 bd cf | #ifndef __PERF_SYMBOL
#define __PERF_SYMBOL 1
#include <linux/types.h>
#include <stdbool.h>
#include <stdint.h>
#include "map.h"
#include "../perf.h"
#include <linux/list.h>
#include <linux/rbtree.h>
#include <stdio.h>
#include <byteswap.h>
#include <libgen.h>
#include "build-id.h"
#include "event.h"
#include "util.h"
#ifdef HAVE_LIBELF_SUPPORT
#include <libelf.h>
#include <gelf.h>
#endif
#include <elf.h>
#include "dso.h"
/*
* libelf 0.8.x and earlier do not support ELF_C_READ_MMAP;
* for newer versions we can use mmap to reduce memory usage:
*/
#ifdef HAVE_LIBELF_MMAP_SUPPORT
# define PERF_ELF_C_READ_MMAP ELF_C_READ_MMAP
#else
# define PERF_ELF_C_READ_MMAP ELF_C_READ
#endif
#ifdef HAVE_LIBELF_SUPPORT
extern Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep,
GElf_Shdr *shp, const char *name, size_t *idx);
#endif
#ifndef DMGL_PARAMS
#define DMGL_NO_OPTS 0 /* For readability... */
#define DMGL_PARAMS (1 << 0) /* Include function args */
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
#endif
/** struct symbol - symtab entry
*
* @ignore - resolvable but tools ignore it (e.g. idle routines)
*/
struct symbol {
struct rb_node rb_node;
u64 start;
u64 end;
u16 namelen;
u8 binding;
bool ignore;
char name[0];
};
void symbol__delete(struct symbol *sym);
void symbols__delete(struct rb_root *symbols);
/* symbols__for_each_entry - iterate over symbols (rb_root)
*
* @symbols: the rb_root of symbols
* @pos: the 'struct symbol *' to use as a loop cursor
* @nd: the 'struct rb_node *' to use as a temporary storage
*/
#define symbols__for_each_entry(symbols, pos, nd) \
for (nd = rb_first(symbols); \
nd && (pos = rb_entry(nd, struct symbol, rb_node)); \
nd = rb_next(nd))
static inline size_t symbol__size(const struct symbol *sym)
{
return sym->end - sym->start;
}
struct strlist;
struct intlist;
struct symbol_conf {
unsigned short priv_size;
unsigned short nr_events;
bool try_vmlinux_path,
ignore_vmlinux,
ignore_vmlinux_buildid,
show_kernel_path,
use_modules,
allow_aliases,
sort_by_name,
show_nr_samples,
show_total_period,
use_callchain,
cumulate_callchain,
exclude_other,
show_cpu_utilization,
initialized,
kptr_restrict,
annotate_asm_raw,
annotate_src,
event_group,
demangle,
demangle_kernel,
filter_relative,
show_hist_headers,
branch_callstack,
has_filter;
const char *vmlinux_name,
*kallsyms_name,
*source_prefix,
*field_sep;
const char *default_guest_vmlinux_name,
*default_guest_kallsyms,
*default_guest_modules;
const char *guestmount;
const char *dso_list_str,
*comm_list_str,
*pid_list_str,
*tid_list_str,
*sym_list_str,
*col_width_list_str;
struct strlist *dso_list,
*comm_list,
*sym_list,
*dso_from_list,
*dso_to_list,
*sym_from_list,
*sym_to_list;
struct intlist *pid_list,
*tid_list;
const char *symfs;
};
extern struct symbol_conf symbol_conf;
static inline int __symbol__join_symfs(char *bf, size_t size, const char *path)
{
return path__join(bf, size, symbol_conf.symfs, path);
}
#define symbol__join_symfs(bf, path) __symbol__join_symfs(bf, sizeof(bf), path)
extern int vmlinux_path__nr_entries;
extern char **vmlinux_path;
static inline void *symbol__priv(struct symbol *sym)
{
return ((void *)sym) - symbol_conf.priv_size;
}
struct ref_reloc_sym {
const char *name;
u64 addr;
u64 unrelocated_addr;
};
struct map_symbol {
struct map *map;
struct symbol *sym;
bool unfolded;
bool has_children;
};
struct addr_map_symbol {
struct map *map;
struct symbol *sym;
u64 addr;
u64 al_addr;
};
struct branch_info {
struct addr_map_symbol from;
struct addr_map_symbol to;
struct branch_flags flags;
};
struct mem_info {
struct addr_map_symbol iaddr;
struct addr_map_symbol daddr;
union perf_mem_data_src data_src;
};
struct addr_location {
struct machine *machine;
struct thread *thread;
struct map *map;
struct symbol *sym;
u64 addr;
char level;
u8 filtered;
u8 cpumode;
s32 cpu;
};
struct symsrc {
char *name;
int fd;
enum dso_binary_type type;
#ifdef HAVE_LIBELF_SUPPORT
Elf *elf;
GElf_Ehdr ehdr;
Elf_Scn *opdsec;
size_t opdidx;
GElf_Shdr opdshdr;
Elf_Scn *symtab;
GElf_Shdr symshdr;
Elf_Scn *dynsym;
size_t dynsym_idx;
GElf_Shdr dynshdr;
bool adjust_symbols;
bool is_64_bit;
#endif
};
void symsrc__destroy(struct symsrc *ss);
int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
enum dso_binary_type type);
bool symsrc__has_symtab(struct symsrc *ss);
bool symsrc__possibly_runtime(struct symsrc *ss);
int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter);
int dso__load_vmlinux(struct dso *dso, struct map *map,
const char *vmlinux, bool vmlinux_allocated,
symbol_filter_t filter);
int dso__load_vmlinux_path(struct dso *dso, struct map *map,
symbol_filter_t filter);
int dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map,
symbol_filter_t filter);
struct symbol *dso__find_symbol(struct dso *dso, enum map_type type,
u64 addr);
struct symbol *dso__find_symbol_by_name(struct dso *dso, enum map_type type,
const char *name);
struct symbol *symbol__next_by_name(struct symbol *sym);
struct symbol *dso__first_symbol(struct dso *dso, enum map_type type);
struct symbol *dso__next_symbol(struct symbol *sym);
enum dso_type dso__type_fd(int fd);
int filename__read_build_id(const char *filename, void *bf, size_t size);
int sysfs__read_build_id(const char *filename, void *bf, size_t size);
int modules__parse(const char *filename, void *arg,
int (*process_module)(void *arg, const char *name,
u64 start));
int filename__read_debuglink(const char *filename, char *debuglink,
size_t size);
struct perf_session_env;
int symbol__init(struct perf_session_env *env);
void symbol__exit(void);
void symbol__elf_init(void);
struct symbol *symbol__new(u64 start, u64 len, u8 binding, const char *name);
size_t symbol__fprintf_symname_offs(const struct symbol *sym,
const struct addr_location *al, FILE *fp);
size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp);
size_t symbol__fprintf(struct symbol *sym, FILE *fp);
bool symbol_type__is_a(char symbol_type, enum map_type map_type);
bool symbol__restricted_filename(const char *filename,
const char *restricted_filename);
bool symbol__is_idle(struct symbol *sym);
int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
struct symsrc *runtime_ss, symbol_filter_t filter,
int kmodule);
int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss,
struct map *map, symbol_filter_t filter);
void symbols__insert(struct rb_root *symbols, struct symbol *sym);
void symbols__fixup_duplicate(struct rb_root *symbols);
void symbols__fixup_end(struct rb_root *symbols);
void __map_groups__fixup_end(struct map_groups *mg, enum map_type type);
typedef int (*mapfn_t)(u64 start, u64 len, u64 pgoff, void *data);
int file__read_maps(int fd, bool exe, mapfn_t mapfn, void *data,
bool *is_64_bit);
#define PERF_KCORE_EXTRACT "/tmp/perf-kcore-XXXXXX"
struct kcore_extract {
char *kcore_filename;
u64 addr;
u64 offs;
u64 len;
char extract_filename[sizeof(PERF_KCORE_EXTRACT)];
int fd;
};
int kcore_extract__create(struct kcore_extract *kce);
void kcore_extract__delete(struct kcore_extract *kce);
int kcore_copy(const char *from_dir, const char *to_dir);
int compare_proc_modules(const char *from, const char *to);
int setup_list(struct strlist **list, const char *list_str,
const char *list_name);
int setup_intlist(struct intlist **list, const char *list_str,
const char *list_name);
#endif /* __PERF_SYMBOL */
|