Closed
Bug 812063
Opened 12 years ago
Closed 12 years ago
Support absolute library path in the symbolization script.
Categories
(Firefox OS Graveyard :: GonkIntegration, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: nbp, Assigned: nbp)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
dhylands
:
review+
|
Details | Diff | Splinter Review |
Currently the symbolization does not work at all if the library contained in the target_name variable contains the absolute path of the library instead of the name of it.
The attached patch, or the git branch [1] is fixing this issue. I have no idea how to test it on B2G, but my guess is that this extra case should not cause any issue since this add a last "elif" and still check that the library is found.
[1] https://github.com/nbp/B2G/compare/symbolicate-absolute-path-libraries
Attachment #681843 -
Flags: review?(dhylands)
Comment 1•12 years ago
|
||
Comment on attachment 681843 [details] [diff] [review]
Add support for libraries refered by an absolute path.
Review of attachment 681843 [details] [diff] [review]:
-----------------------------------------------------------------
What environment do these absolute paths appear in? I haven't seen these on the phone, so I'm guessing that you're using the script in another environment? I'm mostly just curious.
Leaving as r? for now (I'll update once I hear back from you)
::: scripts/profile-symbolicate.py
@@ +134,5 @@
> self.symbol_table_addresses = sorted(self.symbol_table.keys())
> + elif self.target_name[:1] == "/": # Absolute paths.
> + basename = os.path.basename(self.target_name)
> + dirname = os.path.dirname(self.target_name)
> + lib_name = self.FindLibInTree(basename, dirname)
Won't lib_name wind up being the same as self.target_name ?
If so, can we just do
lib_name = self.target_name
if os.path.exists(lib_name):
I have no objection with the code as presented if it's actually finding a library potentially different from the specified absolute path, but if its always just going to find the library specified, then we should just check for that.
Assignee | ||
Comment 2•12 years ago
|
||
(In reply to Dave Hylands [:dhylands] from comment #1)
> Comment on attachment 681843 [details] [diff] [review]
> Add support for libraries refered by an absolute path.
>
> Review of attachment 681843 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> What environment do these absolute paths appear in? I haven't seen these on
> the phone, so I'm guessing that you're using the script in another
> environment? I'm mostly just curious.
I am running NixOS (Linux x64), and taking details profiles (100µs) of JS benchmarks.
Nix provides a GCC wrapper to set precise RPATH, such as a user can compile against isolated libraries, and so all libraries appear with absolute path in the JSON profile.
This give the ability to compile against different library / toolchain without having to change the system or start a chroot / VM.
> ::: scripts/profile-symbolicate.py
> @@ +134,5 @@
> > self.symbol_table_addresses = sorted(self.symbol_table.keys())
> > + elif self.target_name[:1] == "/": # Absolute paths.
> > + basename = os.path.basename(self.target_name)
> > + dirname = os.path.dirname(self.target_name)
> > + lib_name = self.FindLibInTree(basename, dirname)
>
> Won't lib_name wind up being the same as self.target_name ?
>
> If so, can we just do
>
> lib_name = self.target_name
> if os.path.exists(lib_name):
Ok, If we obtain an absolute path, then this probably already resolve the symbolic links, so I guess it is unlikely to be different.
Using os.path.exists(lib_name) works on my system.
Assignee | ||
Updated•12 years ago
|
Assignee: nobody → nicolas.b.pierron
Status: NEW → ASSIGNED
Comment 3•12 years ago
|
||
Comment on attachment 681843 [details] [diff] [review]
Add support for libraries refered by an absolute path.
So I'll r- this patch. If you submit one which just uses the absolute path (and doesn't call FindLibInTree) then I'll r+ it.
Attachment #681843 -
Flags: review?(dhylands) → review-
Assignee | ||
Comment 4•12 years ago
|
||
Modified patch as suggested, as was the github branch since 11 days.
Attachment #681843 -
Attachment is obsolete: true
Attachment #685239 -
Flags: review?(dhylands)
Comment 5•12 years ago
|
||
Comment on attachment 685239 [details] [diff] [review]
Add support for libraries refered by an absolute path.
Review of attachment 685239 [details] [diff] [review]:
-----------------------------------------------------------------
r=me with nit fixed.
And could you do a pull request?
I'll merge it into the repository.
Sorry I missed your change earlier (we don't normally check anywhere but the main repo and rely on the people doing the changes to do pull requests)
::: scripts/profile-symbolicate.py
@@ +133,5 @@
> self.symbol_table = gSpecialLibs[self.target_name]
> self.symbol_table_addresses = sorted(self.symbol_table.keys())
> + elif self.target_name[:1] == "/": # Absolute paths.
> + basename = os.path.basename(self.target_name)
> + dirname = os.path.dirname(self.target_name)
nit: This doesn't seem to be used, so this line could be removed.
Attachment #685239 -
Flags: review?(dhylands) → review+
Assignee | ||
Comment 6•12 years ago
|
||
Comment 7•12 years ago
|
||
Updated•12 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Component: General → Builds
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•