code-for-blog | code samples from my blog | Blog library
kandi X-RAY | code-for-blog Summary
kandi X-RAY | code-for-blog Summary
code samples from my blog
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of code-for-blog
code-for-blog Key Features
code-for-blog Examples and Code Snippets
Community Discussions
Trending Discussions on code-for-blog
QUESTION
I would like to share a test question I met recently and discuss about it:
Write a C program that roughly measures the overhead of a context switch >between the kernel and userspace on a UNIX/Linux system (without using the >pthread API). Please indicate the assumptions your rough estimation is based >on.
I would like to discuss with more advanced C programmers the different options of this problematic.
I have limited knowledge in C programming and I documented myself to provide an acceptable answer:
https://www.researchgate.net/post/How_can_I_measure_thread_creation_and_destruction
https://github.com/eliben/code-for-blog/blob/master/2018/threadoverhead/thread-pipe-msgpersec.c
I realized quickly, despite of my limited knowledge, the ambiguity of the question. Indeed, the question doesn't stipulate if an answer should be given in unit of time or memory.
I personally chose to develop my reasoning measuring time with the library time.h and a very simple snippet. Result should be divided by 1 000 000.
Does my answer make sense or am I completely missing the point ?
...ANSWER
Answered 2019-Feb-27 at 10:52Amazingly enough, the answer I provided above was accepted as correct in this test.
However to optimize the accuracy, we should rule out the "printf" method and go for either a syscall with invalid parameter as mentioned by Alex Hoppus or an empty method.
At the end, result should divided by 2 as mentioned by Alex Hoppus.
QUESTION
I am trying to make this code work : https://github.com/eliben/code-for-blog/blob/master/2011/dwarf_get_func_addr.c It is extracted from a tutorial made by Eli Bendersky on http://eli.thegreenplace.net/2011/02/07/how-debuggers-work-part-3-debugging-information Unfortunately, low pc and high pc return always the same address for almost every function:
...ANSWER
Answered 2017-Sep-13 at 02:35The code in dwarf_get_func_addr.c
has at least one bug: it assumes that every function has DW_AT_low_pc
and DW_AT_high_pc
attributes, and will print uninitialized values if that is not the case.
You should initialize lowpc = highpc = -1;
on line 42, so as not to print unintialized values.
Other than that, it's impossible to help you without access to your lulesh_normal
binary.
You should do readelf -wi lulesh_normal
, and then step through list_func_in_die
in a debugger, and compare what the program is reading there with the output from readelf
-- they should match one to one. If they don't, your version of libdwarf
is possibly buggy.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install code-for-blog
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page