Linux v69820.1blu.de 4.15.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Apache/2.4.58
Server IP : 195.90.215.149 & Your IP : 216.73.216.250
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
nodejs /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
crypto
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
permission
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
tracing
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
acorn_version.h
209
B
-rw-r--r--
2024-04-18 19:08
aliased_buffer-inl.h
7.44
KB
-rw-r--r--
2024-02-13 21:40
aliased_buffer.h
6.05
KB
-rw-r--r--
2024-02-13 21:40
aliased_struct-inl.h
1.32
KB
-rw-r--r--
2024-02-13 21:40
aliased_struct.h
1.44
KB
-rw-r--r--
2024-02-13 21:40
async_wrap-inl.h
2.68
KB
-rw-r--r--
2024-02-13 21:40
async_wrap.h
11.32
KB
-rw-r--r--
2024-02-13 21:40
base64-inl.h
5.76
KB
-rw-r--r--
2024-02-13 21:40
base64.h
1.43
KB
-rw-r--r--
2024-02-13 21:40
base64_version.h
227
B
-rw-r--r--
2024-02-13 21:40
base_object-inl.h
8.94
KB
-rw-r--r--
2024-02-13 21:40
base_object.h
13.3
KB
-rw-r--r--
2024-02-13 21:40
base_object_types.h
3.28
KB
-rw-r--r--
2024-02-13 21:40
blob_serializer_deserializer-inl.h
10.54
KB
-rw-r--r--
2024-02-13 21:40
blob_serializer_deserializer.h
3.56
KB
-rw-r--r--
2024-02-13 21:40
callback_queue-inl.h
2.59
KB
-rw-r--r--
2024-02-13 21:40
callback_queue.h
1.96
KB
-rw-r--r--
2024-02-13 21:40
cares_wrap.h
14.37
KB
-rw-r--r--
2024-04-18 19:08
cjs_module_lexer_version.h
277
B
-rw-r--r--
2024-04-18 19:08
cleanup_queue-inl.h
1.58
KB
-rw-r--r--
2024-02-13 21:40
cleanup_queue.h
2.19
KB
-rw-r--r--
2024-02-13 21:40
connect_wrap.h
584
B
-rw-r--r--
2024-02-13 21:40
connection_wrap.h
686
B
-rw-r--r--
2024-02-13 21:40
debug_utils-inl.h
7.42
KB
-rw-r--r--
2024-02-13 21:40
debug_utils.h
6.77
KB
-rw-r--r--
2024-02-13 21:40
diagnosticfilename-inl.h
768
B
-rw-r--r--
2024-02-13 21:40
env-inl.h
25.59
KB
-rw-r--r--
2024-02-13 21:40
env.h
38.85
KB
-rw-r--r--
2024-02-13 21:40
env_properties.h
33.32
KB
-rw-r--r--
2024-02-13 21:40
handle_wrap.h
4.16
KB
-rw-r--r--
2024-02-13 21:40
histogram-inl.h
2.39
KB
-rw-r--r--
2024-02-13 21:40
histogram.h
7.89
KB
-rw-r--r--
2024-02-13 21:40
inspector_agent.h
4.69
KB
-rw-r--r--
2024-02-13 21:40
inspector_io.h
2.19
KB
-rw-r--r--
2024-02-13 21:40
inspector_profiler.h
4.53
KB
-rw-r--r--
2024-02-13 21:40
inspector_socket.h
1.53
KB
-rw-r--r--
2024-02-13 21:40
inspector_socket_server.h
3.5
KB
-rw-r--r--
2024-02-13 21:40
js_native_api.h
31.22
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_types.h
4.44
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_v8.h
16.83
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_v8_internals.h
1.56
KB
-rw-r--r--
2024-02-13 21:40
js_stream.h
1.35
KB
-rw-r--r--
2024-02-13 21:40
json_utils.h
3.8
KB
-rw-r--r--
2024-02-13 21:40
memory_tracker-inl.h
12.01
KB
-rw-r--r--
2024-02-13 21:40
memory_tracker.h
11.55
KB
-rw-r--r--
2024-02-13 21:40
module_wrap.h
3.72
KB
-rw-r--r--
2024-02-13 21:40
node.h
56.44
KB
-rw-r--r--
2024-02-13 21:40
node_api.h
9.96
KB
-rw-r--r--
2024-02-13 21:40
node_api_internals.h
1.24
KB
-rw-r--r--
2024-02-13 21:40
node_api_types.h
1.57
KB
-rw-r--r--
2024-02-13 21:40
node_binding.h
4.19
KB
-rw-r--r--
2024-02-13 21:40
node_blob.h
5.04
KB
-rw-r--r--
2024-02-13 21:40
node_bob-inl.h
657
B
-rw-r--r--
2024-02-13 21:40
node_bob.h
2.82
KB
-rw-r--r--
2024-02-13 21:40
node_buffer.h
3.6
KB
-rw-r--r--
2024-02-13 21:40
node_builtins.h
5.63
KB
-rw-r--r--
2024-02-13 21:40
node_constants.h
3.67
KB
-rw-r--r--
2024-02-13 21:40
node_context_data.h
2.94
KB
-rw-r--r--
2024-02-13 21:40
node_contextify.h
7.63
KB
-rw-r--r--
2024-02-13 21:40
node_crypto.h
2.27
KB
-rw-r--r--
2024-02-13 21:40
node_dir.h
1.31
KB
-rw-r--r--
2024-02-13 21:40
node_dtrace.h
2.89
KB
-rw-r--r--
2024-02-13 21:40
node_errors.h
16.86
KB
-rw-r--r--
2024-02-13 21:40
node_external_reference.h
7.86
KB
-rw-r--r--
2024-02-13 21:40
node_file-inl.h
12.45
KB
-rw-r--r--
2024-02-13 21:40
node_file.h
14.7
KB
-rw-r--r--
2024-02-13 21:40
node_http2.h
38.61
KB
-rw-r--r--
2024-02-13 21:40
node_http2_state.h
4.76
KB
-rw-r--r--
2024-02-13 21:40
node_http_common-inl.h
5.46
KB
-rw-r--r--
2024-02-13 21:40
node_http_common.h
24.56
KB
-rw-r--r--
2024-02-13 21:40
node_i18n.h
4.34
KB
-rw-r--r--
2024-02-13 21:40
node_internals.h
15.03
KB
-rw-r--r--
2024-02-13 21:40
node_main_instance.h
2.96
KB
-rw-r--r--
2024-02-13 21:40
node_mem-inl.h
3.6
KB
-rw-r--r--
2024-02-13 21:40
node_mem.h
1.27
KB
-rw-r--r--
2024-02-13 21:40
node_messaging.h
14.3
KB
-rw-r--r--
2024-02-13 21:40
node_metadata.h
4.37
KB
-rw-r--r--
2024-02-13 21:40
node_mutex.h
7.78
KB
-rw-r--r--
2024-02-13 21:40
node_object_wrap.h
3.78
KB
-rw-r--r--
2024-02-13 21:40
node_options-inl.h
15.86
KB
-rw-r--r--
2024-02-13 21:40
node_options.h
17.57
KB
-rw-r--r--
2024-02-13 21:40
node_perf.h
4.76
KB
-rw-r--r--
2024-02-13 21:40
node_perf_common.h
2.88
KB
-rw-r--r--
2024-02-13 21:40
node_platform.h
6.19
KB
-rw-r--r--
2024-02-13 21:40
node_process-inl.h
737
B
-rw-r--r--
2024-02-13 21:40
node_process.h
3.36
KB
-rw-r--r--
2024-02-13 21:40
node_realm-inl.h
4.59
KB
-rw-r--r--
2024-02-13 21:40
node_realm.h
5.38
KB
-rw-r--r--
2024-02-13 21:40
node_report.h
994
B
-rw-r--r--
2024-02-13 21:40
node_revert.h
2.09
KB
-rw-r--r--
2024-02-13 21:40
node_root_certs.h
231.49
KB
-rw-r--r--
2024-02-13 21:40
node_sea.h
517
B
-rw-r--r--
2024-02-13 21:40
node_shadow_realm.h
449
B
-rw-r--r--
2024-02-13 21:40
node_snapshot_builder.h
1.21
KB
-rw-r--r--
2024-02-13 21:40
node_snapshotable.h
4.82
KB
-rw-r--r--
2024-02-13 21:40
node_sockaddr-inl.h
7.28
KB
-rw-r--r--
2024-02-13 21:40
node_sockaddr.h
12.91
KB
-rw-r--r--
2024-02-13 21:40
node_stat_watcher.h
2.36
KB
-rw-r--r--
2024-02-13 21:40
node_threadsafe_cow-inl.h
1.28
KB
-rw-r--r--
2024-02-13 21:40
node_threadsafe_cow.h
2.78
KB
-rw-r--r--
2024-02-13 21:40
node_union_bytes.h
1.66
KB
-rw-r--r--
2024-02-13 21:40
node_url.h
2.13
KB
-rw-r--r--
2024-02-13 21:40
node_util.h
1.39
KB
-rw-r--r--
2024-02-13 21:40
node_v8.h
1.67
KB
-rw-r--r--
2024-02-13 21:40
node_v8_platform-inl.h
6.63
KB
-rw-r--r--
2024-02-13 21:40
node_version.h
3.85
KB
-rw-r--r--
2024-04-18 19:08
node_wasi.h
5.21
KB
-rw-r--r--
2024-02-13 21:40
node_wasm_web_api.h
1.78
KB
-rw-r--r--
2024-02-13 21:40
node_watchdog.h
4.32
KB
-rw-r--r--
2024-02-13 21:40
node_win32_etw_provider-inl.h
11.53
KB
-rw-r--r--
2024-02-13 21:40
node_win32_etw_provider.h
3.67
KB
-rw-r--r--
2024-02-13 21:40
node_worker.h
4.92
KB
-rw-r--r--
2024-02-13 21:40
pipe_wrap.h
2.78
KB
-rw-r--r--
2024-02-13 21:40
req_wrap-inl.h
5.43
KB
-rw-r--r--
2024-02-13 21:40
req_wrap.h
2.23
KB
-rw-r--r--
2024-02-13 21:40
spawn_sync.h
6.87
KB
-rw-r--r--
2024-02-13 21:40
stream_base-inl.h
4.93
KB
-rw-r--r--
2024-02-13 21:40
stream_base.h
17.44
KB
-rw-r--r--
2024-02-13 21:40
stream_pipe.h
2.39
KB
-rw-r--r--
2024-02-13 21:40
stream_wrap.h
4.15
KB
-rw-r--r--
2024-02-13 21:40
string_bytes.h
4.69
KB
-rw-r--r--
2024-02-13 21:40
string_decoder-inl.h
858
B
-rw-r--r--
2024-02-13 21:40
string_decoder.h
1.5
KB
-rw-r--r--
2024-02-13 21:40
string_search.h
20.94
KB
-rw-r--r--
2024-02-13 21:40
tcp_wrap.h
3.9
KB
-rw-r--r--
2024-02-13 21:40
threadpoolwork-inl.h
2.58
KB
-rw-r--r--
2024-02-13 21:40
timer_wrap-inl.h
755
B
-rw-r--r--
2024-02-13 21:40
timer_wrap.h
1.79
KB
-rw-r--r--
2024-02-13 21:40
tty_wrap.h
2.27
KB
-rw-r--r--
2024-02-13 21:40
udp_wrap.h
8.5
KB
-rw-r--r--
2024-02-13 21:40
undici_version.h
215
B
-rw-r--r--
2024-04-18 19:08
util-inl.h
19.56
KB
-rw-r--r--
2024-02-13 21:40
util.h
31.46
KB
-rw-r--r--
2024-02-13 21:40
v8abbr.h
5.05
KB
-rw-r--r--
2024-02-13 21:40
Save
Rename
#ifndef SRC_MEMORY_TRACKER_INL_H_ #define SRC_MEMORY_TRACKER_INL_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "memory_tracker.h" #include "util-inl.h" namespace node { // Fallback edge_name if node_name is not available, or "" if edge_name // is not available either. inline const char* GetNodeName(const char* node_name, const char* edge_name) { if (node_name != nullptr) { return node_name; } if (edge_name != nullptr) { return edge_name; } return ""; } class MemoryRetainerNode : public v8::EmbedderGraph::Node { public: inline MemoryRetainerNode(MemoryTracker* tracker, const MemoryRetainer* retainer) : retainer_(retainer) { CHECK_NOT_NULL(retainer_); v8::HandleScope handle_scope(tracker->isolate()); v8::Local<v8::Object> obj = retainer_->WrappedObject(); if (!obj.IsEmpty()) wrapper_node_ = tracker->graph()->V8Node(obj); name_ = retainer_->MemoryInfoName(); size_ = retainer_->SelfSize(); detachedness_ = retainer_->GetDetachedness(); } inline MemoryRetainerNode(MemoryTracker* tracker, const char* name, size_t size, bool is_root_node = false) : retainer_(nullptr) { name_ = name; size_ = size; is_root_node_ = is_root_node; } const char* Name() override { return name_; } const char* NamePrefix() override { return "Node /"; } size_t SizeInBytes() override { return size_; } // TODO(addaleax): Merging this with the "official" WrapperNode() method // seems to lose accuracy, e.g. SizeInBytes() is disregarded. // Figure out whether to do anything about that. Node* JSWrapperNode() { return wrapper_node_; } bool IsRootNode() override { if (retainer_ != nullptr) { return retainer_->IsRootNode(); } return is_root_node_; } v8::EmbedderGraph::Node::Detachedness GetDetachedness() override { return detachedness_; } private: friend class MemoryTracker; // If retainer_ is not nullptr, then it must have a wrapper_node_, // and we have // name_ == retainer_->MemoryInfoName() // size_ == retainer_->SelfSize() // is_root_node_ == retainer_->IsRootNode() const MemoryRetainer* retainer_; Node* wrapper_node_ = nullptr; // Otherwise (retainer == nullptr), we set these fields in an ad-hoc way bool is_root_node_ = false; const char* name_; size_t size_ = 0; v8::EmbedderGraph::Node::Detachedness detachedness_ = v8::EmbedderGraph::Node::Detachedness::kUnknown; }; void MemoryTracker::TrackFieldWithSize(const char* edge_name, size_t size, const char* node_name) { if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name); } void MemoryTracker::TrackInlineFieldWithSize(const char* edge_name, size_t size, const char* node_name) { if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name); CHECK(CurrentNode()); CurrentNode()->size_ -= size; } void MemoryTracker::TrackField(const char* edge_name, const MemoryRetainer& value, const char* node_name) { TrackField(edge_name, &value); } void MemoryTracker::TrackField(const char* edge_name, const MemoryRetainer* value, const char* node_name) { if (value == nullptr) return; auto it = seen_.find(value); if (it != seen_.end()) { graph_->AddEdge(CurrentNode(), it->second, edge_name); } else { Track(value, edge_name); } } template <typename T, typename D> void MemoryTracker::TrackField(const char* edge_name, const std::unique_ptr<T, D>& value, const char* node_name) { if (value.get() == nullptr) { return; } TrackField(edge_name, value.get(), node_name); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const std::shared_ptr<T>& value, const char* node_name) { if (value.get() == nullptr) { return; } TrackField(edge_name, value.get(), node_name); } template <typename T, bool kIsWeak> void MemoryTracker::TrackField(const char* edge_name, const BaseObjectPtrImpl<T, kIsWeak>& value, const char* node_name) { if (value.get() == nullptr || kIsWeak) return; TrackField(edge_name, value.get(), node_name); } template <typename T, typename Iterator> void MemoryTracker::TrackField(const char* edge_name, const T& value, const char* node_name, const char* element_name, bool subtract_from_self) { // If the container is empty, the size has been accounted into the parent's // self size if (value.begin() == value.end()) return; // Fall back to edge name if node names are not provided if (CurrentNode() != nullptr && subtract_from_self) { // Shift the self size of this container out to a separate node CurrentNode()->size_ -= sizeof(T); } PushNode(GetNodeName(node_name, edge_name), sizeof(T), edge_name); for (Iterator it = value.begin(); it != value.end(); ++it) { // Use nullptr as edge names so the elements appear as indexed properties TrackField(nullptr, *it, element_name); } PopNode(); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const std::queue<T>& value, const char* node_name, const char* element_name) { struct ContainerGetter : public std::queue<T> { static const typename std::queue<T>::container_type& Get( const std::queue<T>& value) { return value.*&ContainerGetter::c; } }; const auto& container = ContainerGetter::Get(value); TrackField(edge_name, container, node_name, element_name); } template <typename T, typename test_for_number, typename dummy> void MemoryTracker::TrackField(const char* edge_name, const T& value, const char* node_name) { // For numbers, creating new nodes is not worth the overhead. CurrentNode()->size_ += sizeof(T); } template <typename T, typename U> void MemoryTracker::TrackField(const char* edge_name, const std::pair<T, U>& value, const char* node_name) { PushNode(node_name == nullptr ? "pair" : node_name, sizeof(const std::pair<T, U>), edge_name); // TODO(joyeecheung): special case if one of these is a number type // that meets the test_for_number trait so that their sizes don't get // merged into the pair node TrackField("first", value.first); TrackField("second", value.second); PopNode(); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const std::basic_string<T>& value, const char* node_name) { TrackFieldWithSize(edge_name, value.size() * sizeof(T), "std::basic_string"); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const v8::Eternal<T>& value, const char* node_name) { TrackField(edge_name, value.Get(isolate_)); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const v8::PersistentBase<T>& value, const char* node_name) { if (value.IsWeak()) return; TrackField(edge_name, value.Get(isolate_)); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const v8::Local<T>& value, const char* node_name) { if (!value.IsEmpty()) graph_->AddEdge(CurrentNode(), graph_->V8Node(value), edge_name); } template <typename T> void MemoryTracker::TrackField(const char* edge_name, const MallocedBuffer<T>& value, const char* node_name) { TrackFieldWithSize(edge_name, value.size, "MallocedBuffer"); } void MemoryTracker::TrackField(const char* edge_name, const v8::BackingStore* value, const char* node_name) { TrackFieldWithSize(edge_name, value->ByteLength(), "BackingStore"); } void MemoryTracker::TrackField(const char* name, const uv_buf_t& value, const char* node_name) { TrackFieldWithSize(name, value.len, "uv_buf_t"); } void MemoryTracker::TrackField(const char* name, const uv_timer_t& value, const char* node_name) { TrackFieldWithSize(name, sizeof(value), "uv_timer_t"); } void MemoryTracker::TrackField(const char* name, const uv_async_t& value, const char* node_name) { TrackFieldWithSize(name, sizeof(value), "uv_async_t"); } void MemoryTracker::TrackInlineField(const char* name, const uv_async_t& value, const char* node_name) { TrackInlineFieldWithSize(name, sizeof(value), "uv_async_t"); } void MemoryTracker::Track(const MemoryRetainer* retainer, const char* edge_name) { v8::HandleScope handle_scope(isolate_); auto it = seen_.find(retainer); if (it != seen_.end()) { if (CurrentNode() != nullptr) { graph_->AddEdge(CurrentNode(), it->second, edge_name); } return; // It has already been tracked, no need to call MemoryInfo again } MemoryRetainerNode* n = PushNode(retainer, edge_name); retainer->MemoryInfo(this); CHECK_EQ(CurrentNode(), n); CHECK_NE(n->size_, 0); PopNode(); } void MemoryTracker::TrackInlineField(const MemoryRetainer* retainer, const char* edge_name) { Track(retainer, edge_name); CHECK(CurrentNode()); CurrentNode()->size_ -= retainer->SelfSize(); } MemoryRetainerNode* MemoryTracker::CurrentNode() const { if (node_stack_.empty()) return nullptr; return node_stack_.top(); } MemoryRetainerNode* MemoryTracker::AddNode(const MemoryRetainer* retainer, const char* edge_name) { auto it = seen_.find(retainer); if (it != seen_.end()) { return it->second; } MemoryRetainerNode* n = new MemoryRetainerNode(this, retainer); graph_->AddNode(std::unique_ptr<v8::EmbedderGraph::Node>(n)); seen_[retainer] = n; if (CurrentNode() != nullptr) graph_->AddEdge(CurrentNode(), n, edge_name); if (n->JSWrapperNode() != nullptr) { graph_->AddEdge(n, n->JSWrapperNode(), "native_to_javascript"); graph_->AddEdge(n->JSWrapperNode(), n, "javascript_to_native"); } return n; } MemoryRetainerNode* MemoryTracker::AddNode(const char* node_name, size_t size, const char* edge_name) { MemoryRetainerNode* n = new MemoryRetainerNode(this, node_name, size); graph_->AddNode(std::unique_ptr<v8::EmbedderGraph::Node>(n)); if (CurrentNode() != nullptr) graph_->AddEdge(CurrentNode(), n, edge_name); return n; } MemoryRetainerNode* MemoryTracker::PushNode(const MemoryRetainer* retainer, const char* edge_name) { MemoryRetainerNode* n = AddNode(retainer, edge_name); node_stack_.push(n); return n; } MemoryRetainerNode* MemoryTracker::PushNode(const char* node_name, size_t size, const char* edge_name) { MemoryRetainerNode* n = AddNode(node_name, size, edge_name); node_stack_.push(n); return n; } void MemoryTracker::PopNode() { node_stack_.pop(); } } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_MEMORY_TRACKER_INL_H_