Tombstone (programming) (original) (raw)

About DBpedia

Tombstones are a mechanism to detect dangling pointers and mitigate the problems they can cause in computer programs. Dangling pointers can appear in certain computer programming languages, e.g. C, C++ and assembly languages. In more generalized terms, a tombstone can be understood as a marker for "this data is no longer here". For example, in filesystems it may be efficient when deleting files to mark them as "dead" instead of immediately reclaiming all their data blocks.

Property Value
dbo:abstract Tombstones are a mechanism to detect dangling pointers and mitigate the problems they can cause in computer programs. Dangling pointers can appear in certain computer programming languages, e.g. C, C++ and assembly languages. A tombstone is a structure that acts as an intermediary between a pointer and its target, often heap-dynamic data in memory. The pointer – sometimes called the handle – points only at tombstones and never to its actual target. When the data is deallocated, the tombstone is set to a null (or, more generally, to a value that is illegal for a pointer in the given runtime environment), indicating that the variable no longer exists. This mechanism prevents the use of invalid pointers, which would otherwise access the memory area that once belonged to the now deallocated variable, although it may already contain other data, in turn leading to corruption of in-memory data. Depending on the operating system, the CPU can automatically detect such an invalid access (e.g. for the null value: a null pointer dereference error). This supports in analyzing the actual reason, a programming error, in debugging, and it can also be used to abort the program in production use, to prevent it from continuing with invalid data structures. In more generalized terms, a tombstone can be understood as a marker for "this data is no longer here". For example, in filesystems it may be efficient when deleting files to mark them as "dead" instead of immediately reclaiming all their data blocks. The downsides of using tombstones include a computational overhead and additional memory consumption: extra processing is necessary to follow the path from the pointer to data through the tombstone, and extra memory is necessary to retain tombstones for every pointer throughout the program. One other problem is that all the code that needs to work with the pointers in question needs to be implemented to use the tombstone mechanism. No popular programming language currently uses tombstones. However, built–in support by the programming language or the compiler is not necessary to use them. (en)
dbo:wikiPageID 2923260 (xsd:integer)
dbo:wikiPageLength 3547 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1091116062 (xsd:integer)
dbo:wikiPageWikiLink dbr:Debugging dbr:Null_pointer dbr:Dangling_pointer dbr:Pointer_(computer_programming) dbr:C++ dbr:C_(programming_language) dbr:Locks-and-keys dbr:Dynamic_memory_allocation dbr:Central_processing_unit dbr:Handle_(computing) dbr:Assembly_language dbc:Programming_constructs dbr:Operating_system dbr:Programming_language dbr:Random_access_memory dbr:Filesystems dbr:Computational_overhead
dbp:wikiPageUsesTemplate dbt:Reflist dbt:Compu-lang-stub
dcterms:subject dbc:Programming_constructs
gold:hypernym dbr:Mechanism
rdf:type owl:Thing dbo:Language schema:Language wikidata:Q315 wikidata:Q9143 yago:Abstraction100002137 yago:Cognition100023271 yago:Concept105835747 yago:Content105809192 yago:Idea105833840 yago:PsychologicalFeature100023100 dbo:Organisation dbo:ProgrammingLanguage yago:WikicatProgrammingConstructs
rdfs:comment Tombstones are a mechanism to detect dangling pointers and mitigate the problems they can cause in computer programs. Dangling pointers can appear in certain computer programming languages, e.g. C, C++ and assembly languages. In more generalized terms, a tombstone can be understood as a marker for "this data is no longer here". For example, in filesystems it may be efficient when deleting files to mark them as "dead" instead of immediately reclaiming all their data blocks. (en)
rdfs:label Tombstone (programming) (en)
owl:sameAs freebase:Tombstone (programming) yago-res:Tombstone (programming) wikidata:Tombstone (programming) https://global.dbpedia.org/id/4wVMG
prov:wasDerivedFrom wikipedia-en:Tombstone_(programming)?oldid=1091116062&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Tombstone_(programming)
is dbo:wikiPageDisambiguates of dbr:Tombstone_(disambiguation)
is dbo:wikiPageWikiLink of dbr:Microsoft_Sync_Framework dbr:Concurrent_hash_table dbr:Dangling_pointer dbr:Locks-and-keys dbr:Handle_(computing) dbr:Tombstone_(disambiguation)
is foaf:primaryTopic of wikipedia-en:Tombstone_(programming)