我正在尝试使用以下代码使用Google MAP API v3.
<h2>Topology</h2>
<script src="https://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="{% url css_media 'tooltip.topology.css' %}" />
<link rel="stylesheet" type="text/css" href="{% url css_media 'tooltip.css' %}" />
<style type="text/css" >
#map_canvas {
width:300px;
height:300px;
}
</style>
<script type="text/javascript">
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
</script>
<div id="map_canvas"> </div>
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,浏览器会这样说.
未捕获的TypeError:无法读取null的属性'offsetWidth'
我不知道,因为我遵循本教程中给出的指示.
你有什么线索吗?
当我编译openvswitch-1.5.0时,我遇到了以下编译错误:
gcc -Wstrict-prototypes -Wall -Wno-sign-compare -Wpointer-arith
-Wdeclaration-after-statement -Wformat-security -Wswitch-enum -Wunused-parameter -Wstrict-aliasing -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers -Wno-override-init -g -O2 -export-dynamic ***-lpthread*** -o utilities/ovs-dpctl utilities/ovs-dpctl.o lib/libopenvswitch.a
/home/jyyoo/src/dpdk/build/lib/librte_eal.a
/home/jyyoo/src/dpdk/build/lib/libethdev.a
/home/jyyoo/src/dpdk/build/lib/librte_cmdline.a
/home/jyyoo/src/dpdk/build/lib/librte_hash.a
/home/jyyoo/src/dpdk/build/lib/librte_lpm.a
/home/jyyoo/src/dpdk/build/lib/librte_mbuf.a
/home/jyyoo/src/dpdk/build/lib/librte_ring.a
/home/jyyoo/src/dpdk/build/lib/librte_mempool.a
/home/jyyoo/src/dpdk/build/lib/librte_malloc.a -lrt -lm
/usr/bin/ld: /home/jyyoo/src/dpdk/build/lib/librte_eal.a(eal.o): undefined reference
to symbol 'pthread_create@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from
command line
Run Code Online (Sandbox Code Playgroud)
如果我试着看到它的符号libpthread,它看起来很好.
$ readelf -s /lib/x86_64-linux-gnu/libpthread.so.0 | grep pthread_create
199: 0000000000008220 2814 FUNC GLOBAL DEFAULT 13 pthread_create@@GLIBC_2.2.5
173: 0000000000008220 2814 FUNC LOCAL DEFAULT 13 __pthread_create_2_1
462: …Run Code Online (Sandbox Code Playgroud) 当我浏览Linux内核时,我找到了一个container_of定义如下的宏:
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
Run Code Online (Sandbox Code Playgroud)
我理解container_of做了什么,但我不明白的是最后一句,也就是说
(type *)( (char *)__mptr - offsetof(type,member) );})
Run Code Online (Sandbox Code Playgroud)
如果我们使用宏如下:
container_of(dev, struct wifi_device, dev);
Run Code Online (Sandbox Code Playgroud)
最后一句的相应部分是:
(struct wifi_device *)( (char *)__mptr - offset(struct wifi_device, dev);
Run Code Online (Sandbox Code Playgroud)
看起来什么都不做.有人可以在这里填补空白吗?
有时,我找到给定源文件的.d文件.例如,如果我编译test.c,我就得到了
test.d, test.o
Run Code Online (Sandbox Code Playgroud)
我知道test.o是目标文件,但不知道什么是test.d.你能给出任何提示或指示吗?
据我所知,DSB,DMB和ISB是阻止指令重新排序的障碍.我也可以为每一个找到很多非常好的解释,但很难想象我必须使用它们的情况.
另外,从开源代码中,我不时会看到这些障碍,但很难理解它们的使用原因.举个例子,在Linux内核3.7 tcp_rcv_synsent_state_process函数中,有一行如下:
if (unlikely(po->origdev))
sll->sll_ifindex = orig_dev->ifindex;
else
sll->sll_ifindex = dev->ifindex;
smp_mb();
if (po->tp_version <= TPACKET_V2)
__packet_set_status(po, h.raw, status);
Run Code Online (Sandbox Code Playgroud)
其中smp_mb()基本上是DMB.你能举一些现实生活中的例子吗?这将有助于更多地了解障碍.
我真的想了解关键点的关键点,关于端点,区域,租户,服务,用户和角色之间的关系.我试图找到相关的文件,但遗憾的是,失败了.
任何人都可以提供任何指示或解释吗?
我正在经历内存泄漏,这里有一些细节.
__PRE__
我很惊讶顶部,堆转储大小和实际堆大小之间的差异.我猜测顶部和堆之间的区别是垃圾收集器堆和本机堆区域的可能性.但是,为什么堆转储文件大小和实际堆大小(来自eclipse MAT分析器)可能会有所不同?
对这个问题的任何见解?
更新/答案
一些建议是使用jcmd(https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html),因为该网站告诉"本机内存跟踪".但是,如果你仔细阅读页面,你会看到
__PRE__
因此,如果本机库中存在泄漏,则jcmd不是一个选项.
在爬行互联网几天并尝试各种剖析器之后,对这个问题最有效的方法是使用jemalloc剖面仪.
这个页面对我帮助很大! https://gdstechnology.blog.gov.uk/2015/12/11/using-jemalloc-to-get-to-the-bottom-of-a-memory-leak/
我可以找到很多关于的例子wait_queue_head.它可以作为一个信号,创建一个wait_queue_head,有人可以使用它睡觉,直到其他人开始它.
但我无法找到一个使用wait_queue自身的好例子,据说与它非常相关.
有人可以举例,还是在他们的引擎盖下?
我有一个使用hugepage的应用程序,由于某些bug,应用程序突然崩溃了.崩溃后,由于应用程序没有正确释放hugepage,因此sys文件系统中的freepagepage号不会增加.
$ sudo cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
0
$ sudo cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
1024
Run Code Online (Sandbox Code Playgroud)
有没有办法用武力释放大页?
我想弄清楚Linux的init进程(/ sbin/init)到底发生了什么,但很难找到它.你能告诉我谁维护init进程的源代码?
linux ×4
arm ×1
barrier ×1
build ×1
c ×1
eclipse ×1
gcc ×1
heap-dump ×1
huge-pages ×1
java ×1
javascript ×1
jvm ×1
keystone ×1
linker ×1
linux-kernel ×1
makefile ×1
memory-leaks ×1
openstack ×1
queue ×1
wait ×1