mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 09:47:35 +00:00
Profiler: Make profiler not truncate 64-bit addresses
This commit is contained in:
parent
60b52cfb02
commit
fbc56461da
2 changed files with 9 additions and 9 deletions
|
@ -313,7 +313,7 @@ Result<NonnullOwnPtr<Profile>, String> Profile::load_from_perfcore_file(const St
|
||||||
auto& stack_array = stack->as_array();
|
auto& stack_array = stack->as_array();
|
||||||
for (ssize_t i = stack_array.values().size() - 1; i >= 0; --i) {
|
for (ssize_t i = stack_array.values().size() - 1; i >= 0; --i) {
|
||||||
auto& frame = stack_array.at(i);
|
auto& frame = stack_array.at(i);
|
||||||
auto ptr = frame.to_number<u32>();
|
auto ptr = frame.to_number<u64>();
|
||||||
u32 offset = 0;
|
u32 offset = 0;
|
||||||
FlyString object_name;
|
FlyString object_name;
|
||||||
String symbol;
|
String symbol;
|
||||||
|
@ -338,7 +338,7 @@ Result<NonnullOwnPtr<Profile>, String> Profile::load_from_perfcore_file(const St
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event.frames.append({ object_name, symbol, ptr, offset });
|
event.frames.append({ object_name, symbol, (FlatPtr)ptr, offset });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.frames.size() < 2)
|
if (event.frames.size() < 2)
|
||||||
|
@ -491,7 +491,7 @@ ProfileNode::ProfileNode(Process const& process)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileNode::ProfileNode(Process const& process, const String& object_name, String symbol, u32 address, u32 offset, u64 timestamp, pid_t pid)
|
ProfileNode::ProfileNode(Process const& process, const String& object_name, String symbol, FlatPtr address, u32 offset, u64 timestamp, pid_t pid)
|
||||||
: m_process(process)
|
: m_process(process)
|
||||||
, m_symbol(move(symbol))
|
, m_symbol(move(symbol))
|
||||||
, m_pid(pid)
|
, m_pid(pid)
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace Profiler {
|
||||||
|
|
||||||
class ProfileNode : public RefCounted<ProfileNode> {
|
class ProfileNode : public RefCounted<ProfileNode> {
|
||||||
public:
|
public:
|
||||||
static NonnullRefPtr<ProfileNode> create(Process const& process, FlyString object_name, String symbol, u32 address, u32 offset, u64 timestamp, pid_t pid)
|
static NonnullRefPtr<ProfileNode> create(Process const& process, FlyString object_name, String symbol, FlatPtr address, u32 offset, u64 timestamp, pid_t pid)
|
||||||
{
|
{
|
||||||
return adopt_ref(*new ProfileNode(process, move(object_name), move(symbol), address, offset, timestamp, pid));
|
return adopt_ref(*new ProfileNode(process, move(object_name), move(symbol), address, offset, timestamp, pid));
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ public:
|
||||||
|
|
||||||
const FlyString& object_name() const { return m_object_name; }
|
const FlyString& object_name() const { return m_object_name; }
|
||||||
const String& symbol() const { return m_symbol; }
|
const String& symbol() const { return m_symbol; }
|
||||||
u32 address() const { return m_address; }
|
FlatPtr address() const { return m_address; }
|
||||||
u32 offset() const { return m_offset; }
|
u32 offset() const { return m_offset; }
|
||||||
u64 timestamp() const { return m_timestamp; }
|
u64 timestamp() const { return m_timestamp; }
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ public:
|
||||||
m_children.append(child);
|
m_children.append(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileNode& find_or_create_child(FlyString object_name, String symbol, u32 address, u32 offset, u64 timestamp, pid_t pid)
|
ProfileNode& find_or_create_child(FlyString object_name, String symbol, FlatPtr address, u32 offset, u64 timestamp, pid_t pid)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < m_children.size(); ++i) {
|
for (size_t i = 0; i < m_children.size(); ++i) {
|
||||||
auto& child = m_children[i];
|
auto& child = m_children[i];
|
||||||
|
@ -106,7 +106,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit ProfileNode(Process const&);
|
explicit ProfileNode(Process const&);
|
||||||
explicit ProfileNode(Process const&, const String& object_name, String symbol, u32 address, u32 offset, u64 timestamp, pid_t);
|
explicit ProfileNode(Process const&, const String& object_name, String symbol, FlatPtr address, u32 offset, u64 timestamp, pid_t);
|
||||||
|
|
||||||
bool m_root { false };
|
bool m_root { false };
|
||||||
Process const& m_process;
|
Process const& m_process;
|
||||||
|
@ -114,7 +114,7 @@ private:
|
||||||
FlyString m_object_name;
|
FlyString m_object_name;
|
||||||
String m_symbol;
|
String m_symbol;
|
||||||
pid_t m_pid { 0 };
|
pid_t m_pid { 0 };
|
||||||
u32 m_address { 0 };
|
FlatPtr m_address { 0 };
|
||||||
u32 m_offset { 0 };
|
u32 m_offset { 0 };
|
||||||
u32 m_event_count { 0 };
|
u32 m_event_count { 0 };
|
||||||
u32 m_self_count { 0 };
|
u32 m_self_count { 0 };
|
||||||
|
@ -158,7 +158,7 @@ public:
|
||||||
struct Frame {
|
struct Frame {
|
||||||
FlyString object_name;
|
FlyString object_name;
|
||||||
String symbol;
|
String symbol;
|
||||||
u32 address { 0 };
|
FlatPtr address { 0 };
|
||||||
u32 offset { 0 };
|
u32 offset { 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue