Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(416)

Issue 2844002: Follow debug link correctly (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
9 years, 9 months ago by hashimoto
Modified:
9 years, 9 months ago
CC:
google-breakpad-dev_googlegroups.com
Base URL:
http://google-breakpad.googlecode.com/svn/trunk/
Visibility:
Public.

Description

Follow debug link correctly

As thestig@chromium.org pointed out in https://breakpad.appspot.com/9684002,
LoadSymbols() should return false if |read_gnu_debug_link| is false.

BUG=chromium:453498
R=thestig@chromium.org

Committed: https://code.google.com/p/google-breakpad/source/detail?r=1422

Patch Set 1 : #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats Patch
M src/common/linux/dump_symbols.cc View 1 2 3 3 chunks +37 lines, -37 lines 0 comments Download
M src/common/module.cc View 1 2 3 2 chunks +15 lines, -13 lines 4 comments Download

Messages

Total messages: 16
hashimoto
Ted, could you review this change?
9 years, 9 months ago #1
vapier
9 years, 9 months ago #2
Ben Chan
9 years, 9 months ago #3
Lei Zhang (chromium)
In the case with a debug link, there seem to be function name duplication. e.g. ...
9 years, 9 months ago #4
Lei Zhang (chromium)
I'm guessing with your CL, the PUBLIC entries are getting added first, so the deduplication ...
9 years, 9 months ago #5
Lei Zhang (chromium)
On 2015/02/03 01:28:12, Lei Zhang (chromium) wrote: > I'm guessing with your CL, the PUBLIC ...
9 years, 9 months ago #6
Mark Mentovai
It’s best for PUBLIC to not appear when FUNC appears. It’s true that there’s minimal ...
9 years, 9 months ago #7
Lei Zhang (chromium)
On 2015/02/03 02:01:39, Mark Mentovai wrote: > It’s best for PUBLIC to not appear when ...
9 years, 9 months ago #8
hashimoto
PTAL Reverted r1400's module.cc change and modified Module::AddFunction() to delete PUBLIC entries. Verified that the ...
9 years, 9 months ago #9
Lei Zhang (chromium)
https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc File src/common/module.cc (right): https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc#newcode86 src/common/module.cc:86: ExternSet::iterator it_ext = externs_.lower_bound(&ext); Can we just do this ...
9 years, 9 months ago #10
hashimoto
https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc File src/common/module.cc (right): https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc#newcode86 src/common/module.cc:86: ExternSet::iterator it_ext = externs_.lower_bound(&ext); On 2015/02/03 06:13:51, Lei Zhang ...
9 years, 9 months ago #11
Lei Zhang (chromium)
lgtm I'm worried the Breakpad symbols files generated with this patch might be slightly wrong, ...
9 years, 9 months ago #12
hashimoto
Committed patchset #4 (id:130001) manually as r1422 (presubmit successful).
9 years, 9 months ago #13
hashimoto
https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc File src/common/module.cc (right): https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc#newcode86 src/common/module.cc:86: ExternSet::iterator it_ext = externs_.lower_bound(&ext); On 2015/02/03 07:14:53, Lei Zhang ...
9 years, 9 months ago #14
hashimoto
On 2015/02/03 07:50:18, hashimoto wrote: > https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc > File src/common/module.cc (right): > > https://breakpad.appspot.com/2844002/diff/130001/src/common/module.cc#newcode86 > ...
9 years, 9 months ago #15
Lei Zhang (chromium)
9 years, 9 months ago #16
Message was sent while issue was closed.
On 2015/02/03 08:47:22, hashimoto wrote:
> hamaji@chromium.org told me that ARM uses the lsb of the function address to
> enter Thumb mode.
> So when the CPU is given 161c1 as the address value while branching, PC is set
> to 161c0 and it enters Thumb state.
> Probably the easiest solution might be unconditionally clearing LSB of all
> addresses.

Yep, the DWARF data that dump_syms reads does say 161c0, whereas the ELF .symtab
and .dynsym say 161c1.

The ARM ELF ABI says:

----
In addition to the normal rules for symbol values the following rules shall also
apply to symbols of type STT_FUNC:

- If the symbol addresses an ARM instruction, its value is the address of the
instruction (in a relocatable object, the offset of the instruction from the
start of the section containing it).

- If the symbol addresses a Thumb instruction, its value is the address of the
instruction with bit zero set (in a relocatable object, the section offset with
bit zero set).
----

So if we are on ARM and we encounter an odd address, we should fix the offset.

> Oops, sorry I forgot to put TODO.

No worries.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted